1、switch,case,break,default相关注意点
当变量表达式的内容与某个case后的常量相等后,就执行该case下的语句,break表示该case以后的内容不会执行(立即跳出switch语句),
如果没有跟break,会继续执行当前case之后的case分支,直到与之匹配或都不匹配后执行default。
switch注意点
1.switch 后的 expression 必须是整型表达式 case 后的值,必须是整形常量表达式
2. case 和后边的数字之间必须有空格。
3. 每⼀个 case 语句中的代码执行完成后,需要加上 break ,才能跳出这个switch语句。
如果某⼀个 case 语句的后边没有 break 语句,代码会继续往下执行,有可能执行其他 case 语句中的代码,直到遇到 break 语句或者 switch 语句结束。
4.在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满足实际需求的就可以。
举例说明
分数匹配例子:case 10: case 9:printf("A");
2、main函数的位置
main函数的位置可以在任意位置,但是如果在主函数之中调用了哪些函数,必须在main函数前对其所调用函数进行声明或包含其被调用函数的头文件。
3、define不是关键字
define不是关键字,是编译器实现的,用来定义宏的预处理指令,不是C语言中的内容。
int、struct和continue都是C语言中包含的关键字。
4、字母ASCII码注意点
小写字母的ASCII码值-32就能得到对应的大写字母的ASCII码值
小写字母的ASCII码值比对应的大写字母的ASCII码值更大的。
5、编译、链接、可执行文件
C语言是一门编译型计算机语言,代码需要经过编译和链接生成可执行程序才能运行的,C语言代码经过编译生成目标文件,
目标文件和链接库通过链接生成可执行程序。
6、strlen()函数使用注意
strlen是用来获取字符串的有效长度的,结尾标记'\0'不包含在内。
strlen获取的规则非常简单:从前往后依次检测,直到遇到'\0'是就终止检测。
7、gitee本地文件修改显示红色感叹号
8、""与''的注意点
''中间只能是字符
""中间只能是字符串 例:"abc" ""自动添加/0 内存空间:a b c /0
9、strlen计算转义字符时的个数
详看下图注释说明
10、c语言中0表示假,非零表示真
另外c语言后来又添加了布尔这种变量,如下图所示:
11、sizeof的计算类型为size_t,表示无符号的整数。
size_t的本质就是无符号整型,VS上要使用%zd来打印(否则会有警告),但有些不太严谨编译器占位符也可以是%d等其他类型。
由于32位机或64位机或编译器的不同,同一类型变量在编译器中的字节数不同(char都是一个字节),但在同一编译器中,
有sizeof(short)<=sizeof(int)<=sizeof(long)<=sizeof(long long) sizeof(float)<=sizeof(double)<=sizeof(long double)
sizeof 变量/sizeof (变量) sizeof(变量类型)
小数后加一个f表示该小数类型为float类型,如:
当sizeof(表达式)时,sizeof的计算原则:
1.如果是sizeof(a=b+c)形式时,整体的大小取决于a在对应环境下占用字节数,如下图。
2.如果是sizeof(b+c),整体的大小取决于b和c的最大所占字节数。(当b和c的字节数均小于4时(如char和short时),整体结果是4)
计算机内部计算默认是以32位进行存储和计算的(char,short,int),但当中有高于4个字节的变量时计算时就要进行整型提升。
12、char类型有无符号与编译器有关
13、局部变量定义/创建时最好要初始化,因为局部变量不初始化,里面放的是随机值。
同一文件中全局变量与局部变量的名字相同,优先使用局部变量
14、ASCII码中的\0与空格的编码不同
NULL或\0的ASCII码与空格的ASCII码不同 空格也属于char型
15、/与%操作符的注意点
8/2=4
7/2=3
7.0/2=3.5(除法中只要两边任意一个为小数,结果就是小数,打印小数应注意最后用%f/%lf)
%的两个操作数只能为整数,%只能用于整数且正负取决于第一个操作数
16、初始化与赋值的不同之处
17、单目运算符的注意点
单目运算赋+、-的注意点
+号可以省略
a=+-10/a=-+10都表示a=-10
18、%n.mf的用法
%nd(默认为右对齐)、%-nd(为左对齐):n表示最小宽度,当实际数(打印浮点型只有n位限制时,默认小数点后6位)大于n时,就按实际位数打印,
打印小数时,n等于整数位数、小数点、小数位数之和。
19、需要复制VS提示信息时的操作
20、vs认为scanf不安全的原因
scanf()不会检测目标数组能不能放得下,就直接放
21、EOF的值是-1
22、如果占位符为空格%c表示跳过空格后读取
23、3个数升序排序()编程
#include<stdio.h>int main(){int a,b,c,temp;scanf("%d%d%d",&a,&b,&c);if(a<b){temp=a;a=b;b=temp;}//a>bif(a<c){temp=a;a=c;c=temp;}//a>cif(b<c){temp=b;b=c;c=temp;}//b>cprintf("%d %d %d",a,b,c);return 0;}