2023年C语言知识点

上传人:时间****91 文档编号:166464993 上传时间:2022-11-01 格式:DOCX 页数:15 大小:28.67KB
收藏 版权申诉 举报 下载
2023年C语言知识点_第1页
第1页 / 共15页
2023年C语言知识点_第2页
第2页 / 共15页
2023年C语言知识点_第3页
第3页 / 共15页
资源描述:

《2023年C语言知识点》由会员分享,可在线阅读,更多相关《2023年C语言知识点(15页珍藏版)》请在装配图网上搜索。

1、第二章 数据类型、运算符、表达式、赋值语句与输入输出一、 标记符1. 不能是关键字2. 只能由数字、下划线和英文字母组成3. 第一个字符只能为下划线和英文字母如:abc.d、Level-A、switch都不符合标记符的命名规则二、 常量1. 整形常量:0x27,016分别表达十六进制和八进制(以0开始的数字)的整数2. 用指数方式表达的常量:e前e后必须有数,e后必须是整数。如2E1.6不合法3. 字符型常量:注意转义字符,如和分别表达字符单引号和斜杠,如x51表达ascii码为十六进制数51的字符,如32和0分别表达ascii码为八进制数32和0的字符。注意字符型数据在计算机内部保存的是该字

2、符的ascii码,所以0的值就是0,32-26的值为04. 字符串常量:注意以字符0结尾。如char p10 = “abcd”;则p4的值为0即为0。注意字符串常量以字符组成,字符的表达形式可以是转义字符的形式,如”abcc”,这里的第四个字符是一个斜杠。三、 运算符1. 赋值运算符: 左边必须是变量、数组元素、指针指向的数据或者结构成员中的变量类型数据。如int a,b,c; a+b = c;这个赋值语句是错误的。2. 逻辑运算符:&,|。如判断一个字母变量是大些字母char a; if(a = A & a =Z)3. +。前置运算符:先将数据增长再将增长后的数据放入表达式中。后置运算符:先

3、将数据放入表达式中,再对数据增长。如char *p,*q;char A10;p = A;q = A;*(+p) = 10;/表达先将p指向A1然后将A1设立为10*(q+) = 10;/表达先将A0设立为10然后将q指向A1又如:int a = 1;a+;printf(“%d”,a);/屏幕打印出的值为2又如:int a = 1;printf(“%d”,a+);/屏幕打印出的值为1又如:int a = 10;switch(a+)case 10: printf(“10”);break;case 11: printf(“11”);break;/屏幕打印出的值为104. -如:int A10;int

4、 a,b;a = 8,b = 8;Aa- = 10; /表达先将A8设立为10,然后将a的值减1A-b = 10; /表达先将b的值减1,变为7,然后将A7设立为105. 相等比较运算符:=注意是两个等于。如:char A4 = e, d, f, a;int i=3;if(Ai = a)/不能是Ai=a6. printf():%d,表达输出整数,假如是字符型数据,则输出字符型数据的ascii码;如char a = A;printf(“%d”,a);/打印A的ascii码,即在屏幕上显示65%f,表达输出浮点型数据如float speed = 10.1f;printf(“%f”,speed);/

5、在屏幕上打印浮点数10.1可以直接输出字符串,如:printf(“hello world”);/在屏幕上打印hello world7. scanf注意:以空格、Tab键或者回车键作为输入终止;输入到变量中,这个变量名前要加&,假如输入到字符数组中,则不用加&。如:float t; scanf(“%f”,&t);/从键盘输入一个浮点数又如:char a10,b10;scanf(“%s %s”,a,b);当输入you are good student时 a和b中的值为you和are8. / %/表达除法,当两个操作数都是整数,进行的是整除运算。如:3/5的结果是0%表达取余数运算,如5%3的结果是

6、2,表达5除以3的余数。又如:怎么求1234的个位数?可以这样:int t = 1234; int b; b = t%10;/b计算的结果就是个位数。继续上面如何求十位数? 可以这样: t = t/10; b = t%10;/先把1234整除10,变为123,然后对123求除10以后的余数,结果就是39. sizeof参数为变量或者数据类型,表达变量或者该数据类型在内存中的字节数。如:char a;printf(“%d”,sizeof(a);/在屏幕上打印出110. 程序框架#includeint main()return 0;第四章 分支结构1. if else 匹配规则:else与最近的没

7、有匹配的if匹配结构if( )else if() else if()else只会执行其中的一个分支如:char a = a;if(a =a & a=A & a=0 & a= 9)a = n;else printf(“其余字符”);上述if语句结构,只会执行第一个分支后的语句,即只会执行a = A- a +a;语句,其余语句都不会执行。2. switchcase注意:case后的语句中若无break语句,则执行完case后的语句后会执行后面每一个case的语句。如:switch(2)case 2: printf(“2”);case 3: printf(“3”);case 4: printf(“4

8、”);上述代码会输出234第五章 循环结构1. for循环注意:循环语句为for后的第一个语句。如:for(i= 1;i0);/循环体会执行5次,循环执行后,k的值为5第六章 函数1. 宏定义请记住:替换两字,不要自行添加括号。如:#define SUB(a,b) a-b表达式:SUB(1-2,4-3) 编译器会翻译成1-2-4-3,结果就是-8又如#define SUB(a,b) a-(b)表达式:SUB(1-2,4-3) 编译器会翻译成1-2-(4-3),结果就是-22. 函数的声明形式函数的声明仅仅给出函数的名称、参数类型和个数信息,没有函数的具体实现代码,可以不写参数名,但是参数的类型

9、必须给出,并且每个参数的参数类型都要给出。如:void fun(int a,b);这样的函数声明是错误的。由于其中参数b没有给出类型。void fun(int ,int );这样的函数声明是对的。3. 静态局部变量请记住:只进行一次初始化,变量始终生存。如:void fun()static int i = 0;/只会执行一次初始化i+;printf(“%d”,i);/第一次调用函数时,输出1,第二次2,第三次3main()fun();fun();fun();4. 递归函数自己调用自己如:void fun(float t)if(t0)fun(t-1);printf(“%d”,(int)t);vo

10、id main()fun(2.5);/程序输出的是 0012第七章 数组1. 用字符数组存储字符串1) 初始化char A=”abcd”;/这是对的,A的数组的元素个数为5个,不要忘了结尾符char B10;B=”abcd”;/这是错误的,不能对数组名赋值2) 字符数组的字节数继续上一个例子,sizeof(A)的结果是5,sizeof(数组名)表达数组占用的总字节数 = 数组元素个数*每个元素的字节数。3) 字符串函数strlen表达字符串的字符个数,不涉及结尾符,以结尾符作为计数的终止。如:char A=”abcd”;strlen(A) 的值为4;又如:char A=”abcd”;A2 =

11、0;strlen(A) 的值为2;数组中的元素为ab0d;此时认为字符串的成员为ab。2. 一维数组1) 数组元素的下标从0开始如int A10;A-1 = 0;/错误2) 初始化如:char A5 = 0, 1, 2, 3, 4/在等于号后边写一对花括号,其中写上各元素的初始值。3) 将数组名作为函数参数注意本质上是指针。如:int A10;void fun(int A,int n)int i;for(i = 0; in; i+)printf(“%d”,Ai);上面的这个函数和下面的这个函数的效果用法完全同样void fun(int *A,int n)int i;for(i = 0; in;

12、 i+)printf(“%d”,Ai);上面的这个函数也和下面的这个函数的效果用法完全同样void fun(int *A,int n)int i;for(i = 0; in; i+)printf(“%d”,*(A+i);上述三个函数的调用方法同样,都是fun(A);3. 二维数组1) 初始化float A32=1,2,3,4,5,6;或者float A32=1,2,3,4,5,6;或者float A32=1,2;/可以仅仅初始化一部分数据或者float A2=1,2,3,4,5,6;/若给出初始化数据,则第一维可以不指定或者float A2= 1,2,3,4,5,6;/若给出初始化数据,则第一

13、维可以不指定以下两种定义方式是错误的:float A2;/ 没有给出初始化数据,则第一维必须指定float A32 = 1,2,3,4;/初始化的数据有4行,定义的为3行,矛盾2) 数组元素访问如:float A32=1,2,3,4,5,6;/求第一列float t = A00+ A10+A20;/求每个元素之和int sum;for(i = 0;i3;i+)for(j = 0; j2;j+)sum+=Aij;第八章 指针1. 取地址和取值用&取地址,用*取值如:int a,*p;p = &a;/取地址放入p变量中*p = 10;/取p中存的地址中的数据,将该数据的值设为10;&a = p;/

14、该行是错误的,注意赋值语句左边必须是变量、数组元素、指针指向的数据或者结构成员中的变量类型数据2. 指针与数组1) 数组名表达数组的首地址,可以将数组名赋给指针如int A2 = 1,2;int *p;p = A;/将数组首地址存入变量p中,*p = 10;/相称于将A0设立为102) 可以在数组名前用*表达取数组最前面的元素的值如int A2 = 1,2;printf(“%d”,*A);/相称于打印A0的值3) 取地址符&和*是相反的作用,可以抵消如:int *p;int B2;p = B;*&p1表达p1,其实也就是B1这个元素4) 指针加减运算指的是指针往前或往后偏移数据类型个字节如:i

15、nt *p;int B4;p = B;*(p+2)指的是B2这个元素又如:int B4=1,2,3,4;int *p;for(int i = 0; i成员名如:struct stint a,b;struct st s,*p,A10;s.a = 10;/将变量s的成员a设立为10A1.a = 20;/将数组元素A1的成员a设立为20p=&s;p-a = 20;/相称于将变量s的成员a设立为202) 结构体指针为函数参数请记住指针中存的是地址,当以指针为参数时,传递的是地址。如:struct Aint a,b;void fun(struct A *p,int a)int temp;temp = p

16、-a;p-a = a;a = temp;main()struct A a = 1,2;int b= 3;fun(&a,b);printf(“%d%d”,a.a,b);程序执行的结果为334. 链表nextnext要理解链表是怎么链接起来的。如:struct nodefloat a;struct node *next;struct node n1,n2,*p;n1.next = n2;/将n1的next指针指向n2,在逻辑上相称于n2链接到了n1后面p = &n1;/p指向n1这个结点p = p-next;/p指向下一个结点p-a = 10;/此处相称于n2.a = 10;第十一章:文献1. 文

17、献打开方式二进制写文献方式打开:”wb” 如:FILE *fp = fopen(“file.data”,”wb”);二进制读文献方式打开:”rb” 如:FILE *fp = fopen(“file.data”,”rb”);文本文献按写文献方式打开:”w” 如:FILE *fp = fopen(“file.txt”,”w”);文本文献读文献方式打开:”r” 如:FILE *fp = fopen(“file.txt”,”r”);2. 文献读写二进制文献用函数fread和fwrite文本文献用函数fscanf和fprintf3. 文献关闭用函数fclose,如:fclose(fp);/其中fp是FILE*类型的,是一个已打开文献的文献指针。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!