《程序员面试宝典》C/C++关键字-其他

1.1.3 switch语句
(1)switch case结尾必须添加break语句。
(2)switch(c)中的c可以是int,long,char,等类型,不可以是float类型。
1.1.4 volatile易变的不稳定的
Volatile是一个类型修饰符,用来修饰被不同线程访问和修改的变量,被volatile定义的变量,系统每次用到的时候都是直接从对应的内存中提出,而不是使用保存在寄存器中的备份,以适应它不知何时会发生变化,因此volatile一般用于修饰多线程间被多个任务共享的变量
1.1.5 枚举变量
在枚举中,某一个枚举变量的值默认为前一个变量的值加一,第一个枚举变量没有赋值则默认值为0。同时枚举变量的值是可以重复的。

enum{a,b=5,c,d=4,e};

值分别为0,5,6,4,5
1.1.6 字符数组和字符指针

const char str1[]=”abc”;
const char str2[]=”abc”;//字符数组,str1不等于str2
const char* str3=”abc”;
const char* str4=”abc”;//字符指针,str3等于str4

str1不等于str2,两个字符数组都存储在栈空间上,两者地址不同,str3等于str4,两者是字符指针,不分配存储区,其后的“abc”以常量形式存于常量区。str3和str4是指他们指向的地址的首地址(而这个地址不变常量区,好好理解下)。延伸:&str3和&str4不相等,,是指指针自己的地址。
1.1.7 对float,bool,int,指针变量与“零值”的比较
(1)float
大多数float和double都无法精确的表达,很难用A==B来判断两个浮点数是否相等,因此用>=和<=某个精度值。例如:

if((x>=-0.00001)&&(x<=0.00001))

(2)bool
直接使用下面,不推荐使用其他方法

if(flag)和if(!flag)

(3)int

if(n==0)和if(n!=0)

(4)指针变量

if(p==NULL)和if(p!=NULL)

猜你喜欢

转载自blog.csdn.net/wangshuailpp/article/details/79894525