1。清除缓存区:
scanf("%*[^\n]%*c")
关于详细的清除缓存区的方法,请点击链接
2。枚举enum,例如:
enum bool{ ture=1, false=0 }; //用有意义的名字代替数字,增加程序的可读性
枚举类型本质上整型的数据,更详细的讨论,请点击
3。break和continue:
break 在switch语句中,用于跳出语句;在循环语句中,用于跳出循环体
continue 只能用于循环语句中,用于结束本次循环,开始下一次循环
更多内容,请点击链接
4。unsigned int 类型能表示更大的数,例子详见 /media/tarena/code/01_C_C++_Codes/c4/bin.c
5。数组(array)
相同类型 连续摆放的数据
a[10] //10为非负整数字面量
数组可以初始化,但不允许像如下一样直接赋值,可以给某个元素赋值:
int arr[10]; //define a array that have 10 elements arr = 123; //error:不能直接赋值 arr[4] = 123 /right:/可以给某个元素赋值
数组名 = 第一个元素的地址,
数组名+下标 = 对应元素的地址 a+i = &a[i] *(a+i) = a[i]
越界存放数据可能会破坏其他变量的值,甚至可能导致程序崩溃
字符数组中的字符串以空字符‘ \0’ 结尾,如果没有空字符,则字符数组未必是字符串,如:
char ch_rig[10] = { 'h', 'e', 'l', 'l', 'o', '\0' }; //right! char ch_err[10] = { 'h', 'e', 'l', 'l', 'o'}; //error! printf("ch_rig = %s\n", ch_rig); //right! printf('ch_err = %s\n", ch_err); //会出现不可预知的乱码