- 写程序是main函数尽量不要有实际代码,做到尽量只有逻辑代码
- 对于函数尽量先声明在使用,不要把实际函数写在main函数上面这样会提高可读性。
- 做到一个函数就输一个代码块,实现一个功能,而且能多次调用。
- 不能用一个指针直接接受字符串。因为定义一个指针只是分配了一个内存存地址(8位,64位机),只能接收地址。
结构体的初始化
1 在定义结构体变量的时候就使用初始化列表初始化初始化
eg:struct A{ int age; char name[20]; }; A xiaoming = {18,"xiaoming"};
注意:还可以定义完后,在初始化,但是此时只能一个一个的初始化。
关于逗号运算符
易错:
value = 2+4,9+3,9+1;
来看看这个语句,相信很多人都认为value最后的值是9+1=10但是不然由于赋值运算符的优先级高于发逗号运算符所以value的值是2+4=6。
要想value的值是10只需要加上括号就行了value = (2+4,9+3,9+1);
q
关于float类型的除法运算(m/n)
int n=6; printf("%f",1/n);
结果是0.000000int n =6; float i=1/n; printf("%f",i);
结果是0.000000;int n =6; printf("%f",1.0/n);
如果把1换成1.0,则结果为0.166667int n =6; float i=1.0/n; printf("%f",i);
同样,结果是0.166667
总结:
对于输出格式为f或者lf来说 m/n 如果m和n都是int类型则不管怎么输出结果都是 0.000000
- 什么时候数组名不作为‘地址使用
- sizeof()运算符的时候;sizeof运算符+数组名则计算的是整个数组的大小而非数组名作为指针所占的字节数
- 数组名作为&对象的时候