C语言注意点(1)

发布时间:2024年01月02日

1switchcasebreakdefault相关注意点

当变量表达式的内容与某个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>b

????if(a<c)

????{

????????temp=a;

????????a=c;

????????c=temp;

????}//a>c

?????if(b<c)

????{

????????temp=b;

????????b=c;

????????c=temp;

????}//b>c

????printf("%d %d %d",a,b,c);

????return 0;

}

?

文章来源:https://blog.csdn.net/qq_52907930/article/details/135330380
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。