知道sizeof ”abcd“表达式的值吗

下面的语句对不对了?如果对的请给出答案:

	sizeof 1.2;
	sizeof "abcd";
	char a[]="abcd";
	sizeof a;

如果有不会的,那么看看下面的对你肯定有帮助的。

sizeof是C/C++中用于求类型或变量所占内存空间的运算符(编译器会为每一个变量绑定一块内存空间,而sizeof就是得到这块内存大小的运算符),它有两种用法:

sizeof (类型);//这里的括号是必须的

sizeof (变量名);//这里的括号可以省略

以上括号的区别我想得原因是:类型可能会有 unsigned int这样的,导致语法分析有困难,但是变量名的话就不会存在这种问题了,因为变量名肯定是一个标识符。

C++标准中规定字符串常量被编译器当成数组类型。所以表达式

sizeof “abcd"

返回值为5.

数组类型除了在求sizeof中由特殊含义外,其他情况都按如下等效:

int a[2] = {1, 2};

这里的a在使用时等效于变量int *const p,即指针常量。


随便给个常量指针和指针常量的解释,很经典,百度你看到的:



往往中文属于里形式如AB ,那么A是描述,B是本质。
比如 数据库管理系统 数据库管理是描述 系统是本质 
比如 函数指针 函数是描述 本质是指针,这个指针指向函数地址


(那本质和描述的区别是?描述变了还是同一大类,本质变了就不是同一大类了)


②言归正传:
 常量指针,也就是本质是指针,什么样的指针呢?常量类型的指针,什么叫常量类型的指针呢?
回忆一下函数指针,指向函数地址的指针。


那么常量指针,就是指向常量类型地址的指针。


比如const int * p;




而指针常量,本质是常量。
什么类型的常量?指针类型的常量,为了能够有个术语结构上的对比,你肯定知道整型常量,也知道是这么定义的:const int a;


但指针常量,是这么定义的 : int * const a;


const 在 *前面,是常量指针,const在*后面,是指针常量



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值