C语言易错复习
数据描述
- C语言标识符区分大小写,即
int和Int有区别 return 0;通知操作系统程序正常结束(主要用于main函数最后一行)
数据操作
- 模
%运算,结果取决于模左边(被除数)的符号eg:-2%3结果为-2;2%-3结果为2
c=b*=a+2;等价于c=(b=b*(a+2));- 强制类型转换:
float x;int i;i=(int)x;i的强制转换取值为整数部分 - 运算符:sizeof(类型标识符或表达式),计算参数的长度,标识符参数为标识符大小,字符参数为字符串长度
eg:sizeof(double)值为8;sizeof(“hello”)值为6
- 输入数据流的分割在此段代码中(输入值为
1
2
3char a;int b;
scanf("%3c%3d",&a,&b);
printf("%c,%d\n",a,b);ab12345),输入时a的取值为ab1,b的取值为234;则输出时a值为'a',b值为234
输入数据时可用空格、tab键、回车键来分割数据 %ld中l表示输入长整型数据;%lf表示double型;%*d表示输入的数据在输入后不赋值给相应的变量%.1lf表示double型数据,取值仅保留一位小数
double型默认为6为小数点(不含小数点位),默认不足的情况下以0补齐,超过的则按四舍五入截断- 条件运算符
?,形式:表达式1?表达式2:表达式3(如果表达式1非0则计算表达式2,表达式2值为整个条件的值,否则计算表达式3)eg:
max=(a>b)?a:b计算两数间的最大值
选择结构
switch、case后边表达式为整形或字符型执行过程:switch与case后的表达式比较,如果相等则从该case开始往下执行;若没有,则从default开始往下执行
当循环中嵌套switch时,switch中的break跳出的是switch而不是循环
循环结构
- continue只能用于循环结构
数组
- 一维数组长度为常量表达式值,二维数组长度为两个常量表达式值的乘积(表达式可为整型常量、符号常量、只含常量的表达式),二维数组先行后列
二维数值数组初始化形式:二维字符数组初始化形式(字符数组初始化可用字符常量、ASCII码或字符串):1
2
3
4int a[][4]={{1,2,3,4},{5,6}}; 按行初始化
int a[][4]={{1,2,3,4},{5,6}};
int a[][4]={{1,2,3,4},{5,6}}; 按存储顺序初始化
int a[2][4]={1,2,3}; 按存储顺序部分初始化1
2
3
4char str[3][6]={"hello","red"}; 使用单个字符初始化
char str[5]={114,101,100}; 使用ASCII码值初始化
char str[6]={"hello"}; 使用字符串初始化
char str[3][6]={"hello","red"}; 使用字符串二维数组初始化 - 引用数组元素的三种方法:下标法、地址法、指针法
- 数组名作为函数参数时,在主调函数和被调函数中需分别定义实参数组和形参数组,参数传递时,是将实参数组的起始地址传给形参数组


