c语言笔记

发布 2021-05-12 00:47:28 阅读 1764

1. if中别忘了==,而不是=。

2. 写完程序别忘了检查前后大括号、小括号是否完全照应。

3. 遇到几分之几的分数可以方程两边同时乘以一个数来消去分母。

4. 写指针题时看准指针对应的是行还是列。

例:int a[4][3];

int *p=a[0]; 列指针。

int (*ptr)[3]=a; 行指针。

5. 考虑好哪些量会随着循环不断改变。哪些量不会,如果搞混,会出现难以察觉的错误。

6. c语言中scanf只有在字符数组时不用加&,注意是字符串不是字符,也就是说%s后面可以直接scanf(“%s”,a),而%c后面不行。

7. 定义i用于循环时常常定义在for( )之内,注意后面如果用到i,这样写是错误的,因为i只在局部有效。

8. 注意strlen只适用于字符串数组,不能用于整形数组。

9. strlen使用时注意不要跳过字符串数组的a[0],为了方便就从a[1]开始赋值,如果这样strlen会计算为0,从而出错。

10. 注意对于字符串数组,在**中通过把%d的数字通过“=”转换为字符串中的字符时,字符串识别的是ascii码为%d对应的数字时那个的字符,而不是我们想要的原字符,所以这时有两个解决方案:

第一,转化式中在%d数字后加一个字符‘0’。

第二,输出时不用%c输出,用%d直接输出!

例如。int b;

char a[100]=;

scanf("%c",&a[0]);

printf(“%c”,a[0]);

等价于。scanf("%d",&b);

a[0]=b+'0';

printf(“%c”,a[0]);

等价于。scanf("%d",&b);

a[0]=b;

printf(“%d”,a[0]);

11. 定义时,长整型long int可以简化成long去写。

12. codeblocks调试时遇到debugger finished with status 0,这句话翻译为:调试器以状态0结束。

原因可能是未设置断点或者保存程序的文件夹含有中文。

13. 注意使用return前提是int而不是void。

14. a44?c43?

15. scanf返回值: 返回值代表的是正确匹配的参数个数。

int n1,n2,n3;

若输入时全是整型数字,没有字符乱入。

scanf(“%d”,&n), scanf返回值为1。

scanf(“%d%d%d”,&n,&n1,&n2) scanf返回值3。

若有字符乱入。

scanf返回的是到第一个错误的输入形式为止(如果没有那就到结尾呗),所有符合格式符的正确输入的个数。遇到错误或遇到end of file,返回值为-1。

16. printf()函数的*修饰符(*滞后赋值,例:%*d)

假定不想事先制定字段宽度,而是希望由程序来指定该值,可以在字段宽度部分使用*来代替数字来达到目的,但是也必须使用一个参数来告诉函数字段宽度应该是什么。也就是说,如果转换说明符是%*d ,那么参数列表中应该包括一个 * 值和一个 d 的值。同时这种方式也可以和浮点数一起使用来指定精度和字段宽度。

例:scanf("%d %d", width, &precision);

printf("weight = f", width, precision, weight);

17. scanf()函数的*修饰符:在scanf()函数中,当把 * 放在 % 和说明符字母之间时,它使函数跳过相应的输入项目。

18. <左移右移运算符:

一,问:计算表达式14 <<2的值。

答:表达式14 <<2的值为56,因为14(即二进制的00001110)向左移两位等于56(即二进制的00111000)。

二,问: 计算表达式8 >>2的值。

答:表达式8 >>2的值为2,因为8(即二进制的00001000)向右移两位等于2(即二进制的00000010)。

简单总结:即左移a位就是将数据扩大至原来的2的a次方倍,右移a位就是将数据缩小至原来的2的a次方倍。

19. 计算m/n时,注意m需要为浮点型。

20. 阶乘必须用double。

21. if中的if来解决最后一个数末尾的空格问题。

22. 注意for循环中 for(;;i++)结束时仍然i+1,但是break是直接跳出循环,i不用再执行for中第三个条件。

23. 数组初始化,避免乱码。

24. x和y值的交换方法:

x+=y;y=x-y;

x-=y;25. 对于字符数组,其长度是固定的,其中任何一个数组元素都可以为 null 字符。因此,字符数组不一定是字符串。

对于字符串,它必须以 null 结尾,其后的字符不属于该字符串。字符串一定是字符数组,它是最后一个字符为 null 字符的字符数组。

字符串,编译时会自动在末尾增加一个 null 字符,字符数组则不会。

26. 按位异或(xor)

按位异或运算,对等长二进制模式按位或二进制数的每一位执行逻辑异按位或操作。操作的结果是如果某位不同则该位为1,否则该位为0。例如。

xor 0011

在类c语言中,按位异或运算符是"^"

27. gets和scanf(“%c”)会吃回车,勿忘前面加getchar()。

C语言笔记

第一课时。c语言标准格式。include vidomain 以 开头的语句称为预处理指令。include语句不是必须的,但是如果一旦有该语句就必须把它放在文件开始处是standared input output header的缩写standared 标准input 输入output 输出header...

C语言笔记

c语言算法和数据类型。整型。基本类型 字符型注释 基本类型的特点是其不可实型 单精度型以再分解为其他类型双精度型数组型。数据结构 构造型 结构体型共用体型指针型空类型。一 常量。define 语句不以分号结尾,它可以放在源 的任何位置。不过在定义常量时,只有在它定义后的源 中才有效。是一个修饰符,在...

c语言笔记

每次用到变量都需要先声明定义 常量定义 类型符 const 变量名 值 int整形变量 d float单精度浮点型 f char字符型变量,只能存一个字符 c是字符常量 x以16进制输出 o以8进制输出,10进制整数以8进制输出,符号也作为数值输入 u输出unsigned格式的值 s输出字符串,3s...