这两天复习了之前学习的C语言基础知识,发现了许多对于初学者来说重要但是却容易被忽略的问题,在此总结一下,与君共勉。
1、程序中如果用到头文件stdio.h的内容,即使不写#include <stdio.h>程序也可以正常运行,只会警告,不会报错。这是因为链接程序会自动链接库函数。所以如果使用了非库函数的头文件,就必须要写头文件,不然程序就会报错。
2、在使用scanf函数输入参数时,若以空格作为分隔,如:
int a, b; scanf("%d %d", &a, &b);
在输入参数时,不仅可以使用空格作为分隔符,实际输入tab、回车都可以作为分隔符。
3、在程序中我们经常用到自加运算符(如:a++),但是如果有人问你10++的写法对吗?好多人就不确定了。实际上10++的写法是错误的,因为 a++ 等价于 a=a+1,所以 10++ 应该等价于 10=10+1,显然是错误的。
4、在switch中,我们经常这样写:
int a = 0; int b; switch(a) { case 0: b=1; break; default: b=2; break; }
但是如果这样写呢?
int a = 0; switch(a) { case 0: int b=1; break; default: int b=2; break; }
事实上,这样的写法是错误的,因为如果在case中定义了新的变量,必须用{}包住,不然会发生变量作用域不明确的错误。正确的写法应该为:
int a = 0; switch(a) { case 0: { int b=1; break; } default: { int b=2; break; } }
哦,对了。其实呢,switch 中的 default也常被大家忽略,当 所有 case 中的值都不等于 a 的时候,就可以用到 default 啦!
5、同样作为分支结构的 if 语句也应该注意,在 if 语句中定义新的变量时,必须用{}括起来,不然也会报作用域不明确的错误。如:
if(10>6) { int a=5; }
当然,记得 if(10>6)后边不要加";"哦。
6、在比较大小是,应注意最好将常量值放在运算符的左边,变量放在右边。如: if(2 == a),注意C语言中等于是“==”,若写为“=”则为赋值操作。
7、在是使用sizeof()函数时,注意传入的参数,如:
int a = 10; sizeof (10); // 正确 sizeof 10 ; // 正确 sizeof (a); // 正确 sizeof a; // 正确 sizeof (int); // 正确 sizeof int; // 错误
时间: 2024-10-19 20:18:04