C语言基础学习笔记

上传人:汽*** 文档编号:493826691 上传时间:2023-11-06 格式:DOCX 页数:26 大小:86.93KB
返回 下载 相关 举报
C语言基础学习笔记_第1页
第1页 / 共26页
C语言基础学习笔记_第2页
第2页 / 共26页
C语言基础学习笔记_第3页
第3页 / 共26页
C语言基础学习笔记_第4页
第4页 / 共26页
C语言基础学习笔记_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《C语言基础学习笔记》由会员分享,可在线阅读,更多相关《C语言基础学习笔记(26页珍藏版)》请在金锄头文库上搜索。

1、C语言基础学习笔记(第一版修改)丁炳亮1数据类型与表达式1、1计算机内数据存储方式理解与测试:什么就是补码?我们得先知道模得概念。模“模”就是指一个计量系统得计数范围。如时钟等。计算机也可以瞧成一个计量机器,它也有一个计量范围,即都存在一个“模”。例如:时钟得计量范围就是011,模=12。表示n位得计算机计量范围就是02A(n)-1,模=2A(n)。“模”实质上就是计量器产生“溢出”得量,它得值在计量器上表示不出来,计量器上只能表示出模得余数。任何有模得计量器,均可化减法为加法运算。例如:假设当前时针指向10点,而准确时间就是6点,调整时间可有以下两种拨法:一种就是倒拨4小时,即:10-4=6

2、;另一种就是顺拨8小时:10+8=12+6=6在以12模得系统中,加8与减4效果就是一样得,因此凡就是减4运算,都可以用加8来代替。对“模”而言,8与4互为补数。实际上以12模得系统中,11与1,10与2,9与3,7与5,6与6都有这个特性。共同得特点就是两者相加等于模。二进制中整数得补码求法就是:正数得补码为原码,负数得补码就是符号位不变其她位全部取反再整个数加1。我们可以通过下面得代码瞧下负整数在计算机内部得表示。voidf(intn)unsignedinti;for(i=1,i=1)if(i&n)printf(1);elseprintf(0);printf(n);main()inta=-

3、0xff;f(a);getch();输出得结果就是111111110000000。11、2变量与常量理解与测试:1) 类型声明在计算机内部数据就是以字节为单位存储得,但就是我们需要得数据类型有很多种,每种数据类型所占字节与存储方式都不一样。类型声明得作用就就是告诉计算机以哪种“格式”去读写该数据数据。类型说明符变量名1,变量名2、,变量名n;类型说明符有基本类型(字符型、整数型、单/双精度型)、高级类型(结构体型、共用体型、枚举类型)、指针型等,其中指针类型包括指向基本类型得指针类型、指向高级类型得指针型与指向函数得指针类型(指向函数指针声明格式在后面章节)。2) 符号常量得定义#define

4、标识符常量;使用该种方法定义符号常量一个就是可以使代码便于阅读理解,另一个就是方便代码内部多个相同常量得统一修改。总结与注意在写计算式得时候要考虑变量就是否会越界。一般来说计算式子时就是先强制转换成式子中最大存储空间得数据类型(不包括被赋值得变量),还要注意不同得类型数据在不同得编译器中所占得内存有可能就是不一样得,例如有些编译器整型就是占2个字节有些就是占4个字节。同时还要考虑到符号得优先级与结合顺序,如果按符号得优先级与结合顺序运算过程中有越界得那么整个计算结果可能与预想得不一样了,例如inti=100;i=500*i/i;最后i=-155。1、3输出输入理解与测试:格式化输入输出函数可以

5、按设定得格式与设定得数据类型接收与输出多个变量。控制格式与数据类型得就是数据控制符。1) 字符与字符串可以用专门得输出输入函数。主要有getch();putch();getchar();putchar();gets();puts();其中getch()与putch()就是conio、h中声明,getch()不需要等待回车键就返回字符并立即执行下面一语句符,getch(不在屏幕显示输入得字符。getchar();putchar();在stdio、h中声明。getchar()读取键盘上得一个字符,立即返回并显示在屏幕上,需要等待回车键才能执行下一条语句。例如下面得代码:intmain(void)c

6、harch,i;for(i=0;i10;i+)ch=getchar();putchar(ch);getch();输入:ILOVEYOU输出:ILOVEYOU总结与注意格式输入函数中得参数就是变量存放得地址,所以变量前面要”&”符号。如果就是数组则可以直接用数组名,因为数组名就就是指向该数组首地址得指针常量。1、4运算符号理解与测试:表达式中符号得运算顺序就是有先后得,根据符号得优先级与结合性(左结合/右结合)来判定。如果就是几个符号连在一起C内部就是怎么去读得呢?有一个很简单得规则:每一个符号应该包含尽可能多得字符。也就就是说,编译器读取符号得方法就是,从左到右一个字符一个字符地读入,如果该字

7、符可能组成一个符号,那么在读入下一个字符,直到与下个字符组合成得符号没有意义为止。例如:a-b;这个表达式等效于(a-)-b;1) 复合赋值符及表达式在赋值符“=”之前加上其她双目运算符号可以构成复合赋值符。如:+=、-=、*=、/=、%=。构成复合赋值表达式得一般格式为变量双目运算符=表达式等价于变量=变量运算符表达式可以这么去理解,等号左边得相当于变量自增、自减、自除、自取余一个数,这个数由右边得表达式计算得到。如:inta=7,b=3,c=3;a+=b+=c+=5运算后就是a=18,b=11,c=&2) C中唯一一个三目运算符就是条件运算符,由“?”与“:”构成。两个符号必须按面得格式一

8、起使用:表达式1?表达式2:表达式3三个表达式可以就是任意得合法表达式,条件运算符得运算规则如下:如果表达式1得值为真,那么整个表达式得值为表达式2得值,否则为表达式3得值。3) sizeof()也就是一个运算符号,它可以对一个数据类型或一个变量取类型长度。但就是当一个数组名作为一个实参传递给函数时,在函数内部就是不能用sizeof来获取该数组得长度得。因为数组名就是一个指向数组首地址得指针,使用sizeof只能取得实参指针类型长度。4) 比较少用到得符号就是“:”与“,”。冒号运算符在C中有三种用途,第一种就是我们上面讲到得与“?”构成三目运算。第二种就是在switch中放在常量表达式后面。

9、第三种用法就是在结构体中定义位域时用到。struct位域结构名位域列表;其中位域列表得形式为:类型说明符位域名:位域长度例如:structbsinta:8;intb:2;intc:6;逗号运算符得功能就是把两个表达式连在一起组成一个新得表达式,称为逗号表达式。其一般格式为表达式1,表达式2,表达式3,、,表达式n;其求值过程就是自左向右求两个表达式得值,并以最后一个表达式得值作为整个逗号表达式得值。例如for(a=0,b=0,c=0;b10,a20;b+,a+)+c运算后c=20,如果把中间得两个语句前后调换for(a=0,b=0,c=0;b10,aj?i+:j;printf(%dn,n);g

10、etch();输出结果:在写式子时要注意运算符号对变量得副作用,单目运算有“+”与“-”,双目运算有“=”。2) 位运算符号与逻辑符号容易混淆得有“&”与“&”、“|”与“|”、“”与“!”。前面两个可以这么记,位运算就是单个得所以符号也就是单个得。在使用位运算符号时要主要如果就是有符号数则就是对她们得补码执行位运算。对于有符号得整数型使用左移“”左补1。如下代码:voidf(intn)unsignedinti;for(i=1,i=1)if(i&n)printf(1);elseprintf(0);printf(n);main()inta=-0xff;f(a);a=1;f(a);getch();

11、输出得结果就是:111111110000000111111111100000003) 运算符优先级可以简单归纳如下几点:单目运算符比任何一个真正意义上得运算符得优先级高。逻辑运算符比关系运算符优先级高。移位运算符表算术运算符优先级低,但高于关系运算符。2程序控制结构2、1选择结构理解与测试:使用if-else多层嵌套时else就是与上面同一层得最近if相结合得,在程序设计时有过多得分支最好要选择使用if-else,当然如果可以使用switch语句还就是尽量选择switch语句或者使用其她能使代码简洁易懂得方法。如下面得代码:main()inta=10,b=6,c=7,d=8,e=9,f=10;

12、if(ab)printf(%dn,a);if(bc)printf(%dn,b);if(cd)printf(%dn,c);if(de)printf(%dn,d);if(ef)printf(%dn,e);elseprintf(%dn,f);getch();这种代码又长又难瞧懂,更要命得就是经常搞不懂下面得大括号对应上面得哪个大括号。改进后得代码如下main()inta=10,b=6,c=7,d=8,e=9,f=10;while(1)if(a=b)break;printf(%dn,a);if(b=c)break;printf(%dn,b);if(c=d)break;printf(%dn,c);if(

13、d=e)break;printf(%dn,d);if(e=f)printf(%dn,e);elseprintf(%dn,f);break;getch();第二种方法比第一种方法来瞧上去更干净,理解上差不了多少。2)总结与注意switch语句中每一个分支结束都要有break语句,如果没有就是继续执行下面分支,可能会得到与预料不同得效果。还要注意,case后面跟得一定就是整数型或符号型常量表达式,不能就是变量,并且不用有相同值得变量表达式,不然会矛盾得。2、2循环结构理解与测试:1) 主要有for、while、do-while这三种结构循环体,其中最后一种就是比较少用到得,因为一般情况都可以用前面两种替代。2) 循环体结构中括号得表达式要知道时候退出,有时候还要知道循环体运行多少次。在循环体内部也可以使用continue语句跳过本次循环,进入下一次循环,或者用break语句退出当前层循环。总结与注意循环结构中表达式得设计很重要。在for循环结构我们经常用到从0到x,循环体执行x+1次,可以写成for(i=0;i0;i-=3);这个循环语句得运行结果一般不就是我们想要得。把“=”不注意写成“=”也就是容易造成死循环得结果。3数组3、

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号