当前位置:首页 > 芯闻号 > 充电吧
[导读]2012—7—25C语言回顾—C语言的特点介于低级语言和高级语言之间的中级语言控制性高效性可移植性面向程序员 C语言程序实现的七个步骤1 定义程序目标2 程序设计3 编写代码4 编译5 运行程序6 测

2012—7—25

C语言回顾

—C语言的特点

介于低级语言和高级语言之间的中级语言

控制性

高效性

可移植性

面向程序员

 

C语言程序实现的七个步骤

1 定义程序目标

2 程序设计

3 编写代码

4 编译

5 运行程序

6 测试和调试程序

7 维护和修改程序

 

C语言的编译机制四个部分

预编译————>编译————>汇编————>连接

预编译是产生干净的C的过程去除一些不需要的部分比如注释之类

编译的过程是将C语言程序中非汇编代码转换为汇编代码

汇编就是产生目标代码的过程

连接指连接启动代码和库代码生成机器码

 

C语言中有37个关键字其中main 不是关键字只是程序的一个入口

 

标识符的定义

标识符用来标识变量名,符号常量名,函数名,数组名,类型名,文件名的有效字符序列

标识符的组成规则:

不能是关键字

开头只能是字母和下划线

随后跟若干个字母,数字,下划线

注:C语言中对标识符大小写敏感

命名规则示例:DVD_nucDataGotFromDVD;

DVD 项目名

uc unsignedchar

DataGotFromDVD  获取路径

 

现代计算机可分为几个部件

1 中央处理器(CPU)

2 随机访问存储(RAM)

3 永久存储器(硬盘)

4各种外围设备(键盘,鼠标,监视器,等)

数据类型

[singed] int 2byte 16bit

Unsigned int 2byte 16bit

[singed] short 2byte 16bit

Unsigned short  2byte 16bit

Long  4byte  32bit

Float 4byte  32bit

Double 8byte  64bit

Long double 16byte 128bit

 

求count所占的字节

int count;

sizeof(count);

sizeof(int);

两种方法都可以

 

数据类型决定

1 占内存大小

2内存中的布局

3 数据的行为

 

浮点数之间的比较不可以用= =

Float f=0.0;

For(int i=1;i<=26;i++){ f+=0.1;}

If((f-2.6)>1e-6&&(f-2.6)<1e-6)//比较与2.6的大小  float精度为小数点后6~7位

 

转义字符

n---回车换行

a---警报

b---退格

r---回车不换行,当前位置移到本行行首

\---反斜杠

’---单引号

”---双引号

ddd ---八进制值(d表示一个八进制数字)

如101 表示10进制的65

xhh ---十六进制值(h表示一个十六进制数字)

 

使用宏常量的好处:

1.         -增加程序可读性;

2.         -减少书写错误;

3.         -便于维护;

 

 

宏常量举例

#define PRICE 30

void main( )

{

int num, total;

num=10;

total=num * PRICE;

printf("total=%d",total);

}

使用const而不是宏来定义常量的好处:

1、const定义的常量编译器可以对其进行数据类型安全检查,而#define宏定义的常量却只是进行简单的字符替换,且有时还会产生边际效应(不如你愿)。

所谓边际效应举例如下: #define N 100 #define M 200 + N 当程序中使用 M*N 时,原本想要 100 * ( 200+ N )的却变成了 100 * 200 + N。

2、有些调试程序可对const进行调试,但不对#define进行调试。

3、当定义局部常量时,const作用域仅限于定义局部常量的函数体内。但用#define时其作用域不仅限于定义局部常量的函数体内,而是从定义点到整个程序的结束点。

 

使用枚举常量:

注:

枚举常量一定是整形量

枚举常量不能取地址

枚举常量举例

int main( )

{

enum solution {a,b,c,d};//枚举常量enum solution item= b;

printf("%d",item);

}

 

int a = 10;//定义的同时初始化

int a;//定义未初始化

a = 10;//赋值

 

重点:

变量的初值问题:

#include

int i;

void main( )

{

static int j;

int k;

printf("%d,%d,%d.n",i, j, k);

}

全局变量、静态变量系统默认分配初值,局部变量系统不会分配初值。当变量定义没进行初始化时,

全局变量、静态变量系统默认分配初值,

局部变量系统不会分配初值。

 

变量运算中的隐式类型转换

什么情况下发生?

              运算转换:不同类型数据混合运算时。规则:不同类型数据运算时先自动转换成同一类型。规则是由低到高、简单到复杂。

              赋值转换:把一个值赋给与其类型不同的变量时。右服从左。float f = 1.0;int* p = malloc(sizeof(int));

              函数调用:实参与形参类型不一致时转换,实参服从形参。

              函数返回:服从返回值。

               

变量的定义和声明

变量声明:告诉编译器变量的类型、存储类型,不分配存储空间。 extern int i;

变量定义:告诉编译器在此处分配存储空间创建变量。

int i= 1;

同一变量定义只能一次,但是可以声明多次。

 

结构体概念:多个的数据组合成的一个整体,它是一种构造数据类型。

结构体类型与结构体变量是不同概念。类型:不分配内存,不可参与运算。

结构体变量:分配内存,可以参与运算

 

特点:

可以对结构体变量整体初始化;

可以将一个结构体变量整体赋值给另一个结构体变量。

可以对整个结构体变量或各成员取地址;

不可以在定义结构体类型时让成员带有初值

不可以判断两个结构体变量是否相等

 

指针变量与0值比较(指针非空比较)

尽管NULL的值与0相同,但是两者意义不同。假设指针变量的名字为p,它与零值比较的if语句如下:

if (NULL == p) 或if (p != NULL) // p与NULL显式比较,强调p是指针变量

不要写成:

if (p == 0)

if (p != 0) // 容易让人误解p是整型变量

 

结构体变量赋值的三个方法

#include

#include

struct Student{

       int score;

       char name[20];

       }stu1,stu2,stu3;

//stu1={98,"zhangsan"},stu2={89,"lisi"},stu3={96,"wangwu"};

 

void main(){

       float avg_score;

       struct Student * pstu1=&stu1;

       struct Student * pstu2=&stu2;

       pstu1->score=98;

       strcpy(pstu1->name,"zhangsan");

       (*pstu2).score=89;

       strcpy((*pstu2).name,"lisi");

       stu3.score=96;

       strcpy(stu3.name,"wangwu");

       avg_score=(float)(stu1.score+stu2.score+stu3.score)/3;

       printf("%fn",avg_score);

       printf("%s%dn",stu1.name,stu1.score);

       printf("%s%dn",stu2.name,stu2.score);

       printf("%s%dn",stu3.name,stu3.score);

}

这是实习第一天所讲的课程,╮(╯▽╰)╭  有点多但讲的很实用第一天的话给自己打70分  加油加油加油

 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

Java语言和C语言是两种不同的编程语言,它们在语法、特性和应用领域上有许多差别。下面将详细介绍Java语言和C语言之间的差异以及它们各自的技术特点。

关键字: Java语言 C语言 编程

嵌入式系统是一种专门设计用于特定应用领域的计算机系统,它通常由硬件和软件组成,并且被嵌入到其他设备或系统中,以实现特定的功能。在嵌入式系统的开发过程中,选择适合的编程语言是至关重要的。C语言是一种被广泛应用于嵌入式系统开...

关键字: 嵌入式 计算机 C语言

C语言是一种广泛应用于软件开发领域的编程语言。它是由贝尔实验室的Dennis Ritchie在20世纪70年代初创建的,旨在为UNIX操作系统的开发提供一种高级编程语言。C语言具有简洁、高效、可移植性强等特点,因此成为了...

关键字: C语言 操作系统 应用程序

嵌入式系统是现代生活中无处不在的一部分。它们包括了我们的家电、汽车、智能手机、医疗设备等等。这些系统的工作必须高效、可靠,因为它们往往控制着生活中的关键方面。而C语言作为一种广泛用于嵌入式系统开发的编程语言,其质量和稳定...

关键字: 嵌入式系统 C语言 编程

在嵌入式系统开发领域中,C语言是使用最广泛的编程语言之一。它具有高效、灵活和可移植的特点,成为嵌入式系统设计师的首选语言。本文将介绍C语言编程的基本概念、特点以及在嵌入式系统开发中的应用。

关键字: 嵌入式系统 C语言 编程

C语言编译器是一种用于将C语言源代码转换为可执行程序的软件工具。它的主要功能是将C语言代码翻译成机器语言,以便计算机能够理解和执行。C语言编译器通常包括预处理器、编译器、汇编器和链接器等多个组件,它们协同工作以完成编译过...

关键字: C语言 编译器 Microsoft Visual C++

Matlab和C语言的区别是:1、用途不同;2、语法不同;3、运行速度不同;4、可移植性不同;5、代码管理不同。Matlab是一种数值计算和科学计算工具

关键字: matlab语言 C语言 系统编程

单片机是一种集成电路,它包含了中央处理器、存储器、输入输出接口和时钟等基本部件。单片机广泛应用于各种电子设备中,如家用电器、汽车电子、医疗设备等。单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用...

关键字: 单片机编程 单片机 C语言

一直以来,嵌入式都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来嵌入式的相关介绍,详细内容请看下文。

关键字: 嵌入式 C语言
关闭
关闭