下面的语句对不对了?如果对的请给出答案:
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在*后面,是指针常量