sizeof,if和switch,const和define···

来源:互联网 发布:网络低俗文化 编辑:程序博客网 时间:2024/06/08 12:02

负数的二进制中1的个数
n=sizeof(a++);printf(“%d,%d”,n,a);的输出结果及原因
‘\0’,’0’的区别
转义字符及其作用
case语句中能不能用float和double及其原因
if else的区别,效率
const和define区别

一.负数的二进制中1的个数

代码实现:
这里写图片描述

二.sizeof,三目运算符

sizeof命令中,
一、如果参数是指针变量(无论什么类型的指针)其结果都是4
二、如果参数是是数组,会返回数组所占空间的大小,即:int a[n] ; sizeof(a)=n*sizeof(int) ;
三、如果参数是个变量类型,则会返回这个类型所占空间的大小。
这里写图片描述

三.’\0’,’0’,0

1.在c语言字符数组里,’\0’和0
是相同的,因为对应的ASCII码相同,都是0,前者表示ASCII是0的字符,后者表示字符0;
2.‘\0’是字符数组结束标志,’0‘可以作为字符数组的一个元素,对应的ASCII为48。

四.转义字符及其作用

这里写图片描述
使用转义字符表示ASCII码字符集中不可打印的控制字符和特定功能的字符

五.case语句中能不能用float和double及其原因

不能
switch(开关)语句通过跳转表,跳转表是一个数组,跨过一个不连续的区域。
根据开关情况的数量和开关情况值得稀少程度来翻译语句,当开关数量比较多(例如4个以上),并且值的跨度范围比较小时,就会使用跳转表。
double,float无法精确定位到哪个case执行。

六.if else的区别,效率

switch 是多分支选择语句,而 if 语句只有两个分支可供选择。这是 switch 语句存在的理由。

七.const和define区别

1.编译器处理方式不同
①define宏是在预处理阶段展开
②const常量是编译运行阶段展开
2.类型和安全检查不同
①define宏没有类型,不做任何类型检查,仅仅是展开。
②const常量有具体的类型,在编译阶段会执行类型检查。
3.存储方式不同
①define宏定义不分配内存,使用多少次,就展开多少次
②const定义常量分配内存
③const减少内存占用,节省空间
4.有些集成化的调试工具可以对const进行调试,但是不能对宏常量进行调试
5.在c++中const完全取代宏参量