C语言基本常识
预处理指令
宏定义
头文件
条件编译
指针
在数值变量前加&得到它的地址,在指针变量前加*得到值
1 |
|
字符串变量就是第一个字符的地址,等价于在变量前加&
循环
for循环当中必须是两个分号,千万不要忘记
do-while()循环的后一个while();的分号一定不能够丢
文件处理
while((c=getchar())!=’\n’)和 while(c=getchar() !=’\n’)的差别
先看a = 3 != 2 和(a=3)!=2 的区别:(!=号的级别高于=号 所以个先计算 3!=2) 个a的数值是得到的1;第二个a的数值是3
“(int)f“表示将f中的值强制类型转换为整型,即将13.8的小数部分舍掉,转换为13
文件操作中的W
是指如果文件存在时且有内容,则清零;没有则创建
只是在打开文件时这样操作,打开后的连续写入,并不会清零
数组
定义数组的中括号中不能为变量,可以是整型常量
定义数组是如果没有指明元素个数,则必须在初始化时赋值
数组名为数组第一个元素的地址
对数组进行初始化,要么两个维度都不写,由赋值的数组确定,或者第二维可以不写,第一维要写,再由赋值数组确定
二维数组的定义方式。第一维的大小由以下方法判断: ①当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小; ②当初值的个数不能被第二维的常量表达式的值除尽时,则第一维的大小:所得的商数+1
二维数组的一维大小,即指二维数组的行数
二维数组初始化时可以省略行数,但不能省略列数
结构
结构定义后可以直接在尾括号的后面加要定义的变量
1 | struct student{ |
对结构成员变量的引用
1 | struct student{ |
结构的实例变量不是地址
1 |
|
优先级
!=的优先级高于==
*的优先级低于[],’.’
java优先级
c语言优先级
字符和字符串
用单引号表示字符,双引号表示字符串
char x[]=”hello”, y[]={‘h’,’e’,’a’,’b’,’e’}
x的长度为6,y的长度为5
函数
函数形参类型为数组时
可以像声明数组那样定义形参,也可以用数组元素类型的指针
形参赋值
1 |
|
关键在这一句
s = (float )calloc(1,sizeof(float));
给s新分配空间了
而主函数中s指向的还是数组a
你如果把这句话去掉结果就是11.10了
变量
初始化
其实就是为变量开辟存储空间,标记存储地址,并赋初值的过程
进制
不同进制只是为了方便使用,但最终落实到计算机上都是以二进制存储
十六进制
用0x或0X表示
显示
%x
显示前缀
%#X或%#x
八进制
用0表示
显示
%o
显示前缀
%#o
1 | void main(void){ |


