C语言复习-常见错误(上)-学习笔记-68

引入

近两个月的时间,顺着谭浩强老师的《C 语言程序设计(第四版)》,我们简要学习了一些 C 语言的知识,接下来三节,我们对常见问题和一些知识点进行回顾。

常见错误

我们梳理一下常见的错误。

忘记定义变量。

1
2
3
4
x=3;
y=4;
printf("%d",x+y);
//没有声明变量类型

输入输出格式不统一

1
2
3
4
float x=3.3;
float y=4.3;
printf("%d",x+y);
//应该使用%f 类型输出

超出数据类型范围

int 和 short 都是-32768~32768,不能超出这个数。

1
2
3
int num;
num=99999;
//99999超出了 int 类型的数值范围

输入格式不统一

1
2
3
4
scanf("%d %d");
//输入数据之间是空格
scanf("%d,%f");
//输入数据之间是逗号

数组名就是地址

1
2
3
char str[20];
scanf("%d %s",&a,&str);
//数组名就是地址,不用再加&符号

分号

  • 定义变量后面有分好
  • 结构体、共用体、枚举体后面有分号
  • for 语句的参数是用分号隔开的

定义常量、引入库文件,都是没分号的
if for while 都是没没有分号的

花括号

花括号一定是成对儿出现的,切记!

括号

括号也是成对出现的,要匹配!

标识符大小写

定义变量如果是大写就是大写,引用时不能是小写!

等号

==才是等于符号
=是赋值符号

数组是方括号[ ]

数组一定是方括号,不是圆括号,不要搞错!

数组元素

定义数组的时候,是元素的数量。
引用数字的时候,下标数是从0开始的,所以最大值是数组元素-1。

数组名

数组名是数组首元素地址,不代表整个数组,更不能直接赋值。

字符数组和字符指针是有区别的

1
2
3
4
5
int main(){
char str[4];
str="Computer and C"; //这是错误的,你不能给一个数组的首元素地址再次赋值
printf("%s\n",str);
}

我们可以改成

1
2
3
4
5
int main(){
char *str;
str="Computer and C"; //这是错误的,你不能给一个数组的首元素地址再次赋值
printf("%s\n",str);
}

引用变量之前没有对它给予确定的值

没有给指针变量 p 赋值就引用它,编译时给出警告信息。
其实指针变量中 p 在没有赋值的时候,是不为空的,但内容不可预测!

Switch 语句中个分支中漏写 break

switch 语句,一定要在分支中写 break,否则会继续检验下面的其他 case

尾巴

这是我的个人学习笔记,主要是应付考研复习使用,充斥着一些吐槽和个人观点,并不严谨,欢迎大家参考、指正。


-------------The End-------------
欢迎请我喝咖啡哦~!