2.23号至3.1号
c语言的原码反码补码;
基本数据类型bool,char,int等;
数据类型大小的计算,如用sizeof计算int为4字节;
常量:整形,浮点型指数型常量和字符常量字符串常量还有标识常量共5种常量,其中字符常量通过定义数据类型char去+-字符得到另一个字符常量,输入字符用“”,字符串用‘’。
标识常量中#define把一个常量用别的字符取代,如#definr pai 3.1415926,程序后面要用到3.1415926的地方用pai替代就行了。注意#define只起到替换作用,如#define two 1+1;计算x=1+two*2+1过程中被替换的数没有优先级,即x=1+1+1*2+1不是x=1+(1+1)*2+1;
存储类型:
auto和register,auto是一般内存,变量在内存中,register将变量放在cpu中,程序运行速度更快;
重点,常用的两种:存储类型static以固定地址存放,默认变量值为0,程序没结束就可以让程序while循环时值能继承上一次循环;存储类型extern,让同一工程文件里的变量,在用extern修饰后,可以在不同文件里使用,如在a文件里extern int i;可以使用b文件的变量i。注意,用static修饰的全部变量在其他文件无法使用;
运算符:
算数运算符:+,-,*,/,%(数据类型float和double不能取余%);
关系运算符:<,<=,>,>=,==,!=;
逻辑运算符:!逻辑反,&&逻辑与,||逻辑或。&&遇0截止,if语句中&&左边输出为0右边就不计算了,左1右1结果1,左0右1结果0,左1右0结果0。||遇1截止,左1右1结果1,左1右0结果1,左0右1结果1,左右都0结果0;
位运算:计算8进制和十六进制,位逻辑反~,位逻辑与&,位逻辑或|,位逻辑异或^,右移动>>,左移动<<。位逻辑异或计算方式相同为假。不同为真,位逻辑反~,位逻辑与&,位逻辑或|计算方式和逻辑运算一样。
赋值运算符:=+,-=,*=,/=,%=,&=,|=,^=,<<=,>>=。eg:x+=b;//x=x+b。
特殊运算符(三目运算符):?:。<表达式1>?<表达式2>:<表达式3>,判断表达式1真假,真则输出表达式2,假则输出表达式3。
逗号运算符:会等与最后一个表达式的结果。eg:z=(z=1,x+=5,y=5);括号内有三个表达式,z在编译输出后会等于最后一个表达式的结果,也就是5;
sizeof运算符:计算数据类型所用字节大小。如:long=1;int=1;printf(“%d%d”,sizeof(int),sizeof(long));结果输出4,8。
c语言运算符优先级:
数据输出:
字符输出函数putchar():putchar(a)a为字符常量,变量或者表达式,该函数作用是把括号内的a输出到屏幕上;
格式输出函数printf:格式printf(“格式控制符”,输出表),用指定格式向显示器输出数据,输出表位要输出的对象,printf(“%d”,a);
字符输入函数:getchar()。从键盘输入字符,返回值返回读取的代码,出错或结束返回-1。输入好字符后再putchar输出。。
格式输入函数:
scanf(),格式scanf(“%d”,&x);。修饰符中的*号意思是,例在scanf(“%d%*d%d”,a,b,c);中有*号的%*d即使有输入但不在结果中输出显示。在scanf()中用%c输入字符时,空格或者回车也算输入。
输入函数垃圾清理:
为避免scanf函数%c输入时空格和回车占用输出,可以在程序中加入getchar()函数或者在scanf里在要空格的第方加入抑制符*,即scanf(“%*c%c”,&x);。也可以加一个空格来抵消输出时的空格,但空格不能抵消回车。
字符串输入输出函数:
输入函数gets():输入字符长度应小于字符串长度,不然容易报错。如char a【5】;gets(a);输入zbc,算上\0有4个字符,输出结果要小于5。和scanf函数不同,空格回车不会计入字符。输入字符后会默认加入一个\0,算一个字符。
输出函数put:向显示器输出字符串,输出完自动回车换行,如图1有空格,图2没空格。
控制语句:
if - else语句:
注意: