当前位置:首页 > 芯闻号 > 充电吧
[导读]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分  加油加油加油

 

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

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭