复习C语言的时候,我把李明杰老师的C语言视频过了一遍,把自己认为比较容易出错的地方做了笔记记录在work文件里。
以下是我的部分笔记:
1.scanf函数注意事项:
scanf中不能写 \n
例如:int a;scanf("%d\n", &a); // 错误写法
2.定义变量注意事项:
如果要在if、case、for后面定义变量,必须要用大括号来明确变量作用域
例如:
2.1 // 下面的代码是错误的,作用域不明确
if (10 > 6) int a = 5;2.2 // 如果要在case后面定义新的变量,必须用大括号{}包住
下面代码正确,若去掉大括号会报错
switch (c)
{
case '+':
{
int sum = a + b;
printf("和是%d\n", sum);
break;
}
case '-':
{
int minus = a - b;
printf("差是%d\n", minus);
break;
}
}
2.2 //错误:变量a的作用域不明确
//如果要在循环体中定义新的变量,必须用大括号{}包住
for (int i=0; i<5; i++)
int a = 10;3.
3.不使用中间变量交换2个变量的值
/* 使用位异或运算符交换两个变量的值*/
a = a ^ b; b = a ^ b; a = a ^ b;
4.\0的作用\0是字符串结束的标记
例如:
printf("%s", name2); 会从name2这个地址开始输出字符,直到遇到\0为止
5.定义字符串的两种方式
5.1 利用数组
char name[] = "itcast";
特点:字符串里面的字符是可以修改的
使用场合:字符串的内容需要经常修改
5.2 利用指针
char *name = "itcast";
特点:字符串其实是一个常量字符串,里面的字符是不能修改
使用场合:字符串的内容不需要修改,而且这个字符串经常使用
6.字符串数组的定义
6.1char names[2][10]= {"jack", "rose"};
6.2 上面等价于char names2[2][10] = { {'j', 'a', 'c', 'k', '\0'}, {'r', 'o', 's', 't', '\0'} };