在做这道题时: 32位环境下,int *p=new int[10];请问sizeof(p)的值为()A、4 B、10 C、40 D、8 我以为正确答案为C,int类型为32位,占四个字节,10个自然就是40 ...
数组名本身是个地址常量,但是某些特殊情况下它的语义可以发生改变。例如sizeof a ,这时a表示整个数组对象 这里指语法对象,不是指类的实例 而不是这个常量本身。基于这个语义,对数组名取地址也是合法的,对于数组a来说 amp a的结果等于a这个地址常量本身的值。这是C C 标准委员会为了维护语法对象a作为一个左值 l value 总可以取地址这条原则的妥协。 运行结果 。 解释:char st ...
2013-08-27 20:39 0 4473 推荐指数:
在做这道题时: 32位环境下,int *p=new int[10];请问sizeof(p)的值为()A、4 B、10 C、40 D、8 我以为正确答案为C,int类型为32位,占四个字节,10个自然就是40 ...
sizeof数组名和字符指针是有区别的。 代码没有啥实际意义,就是为了看一下sizeof数组名和字符指针的区别。 结果为: length:8length:2048length:8length:8 当数组名作为函数参数传递时,会退化为字符指针。 ...
; } sizeof(指针),sizeof(数组名)的区别: 例子: #include<iostr ...
",sizeof(arr)); 输出结果为56,4,表示最后长度为14的数组。 数组名代表元素的首地 ...
作者:SHI家的鱼 链接:https://www.zhihu.com/question/41805285/answer/202040382 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 1. 己址 数组和指针,都是有自己的地址 ...
一,首先我们先分析下数组名和数组名取地址的区别。 我们都知道数组名是数组的首地址,然而对数组名取地址又是什么那?看下面一段程序你就会懂的。 #include "stdafx.h" #include<stdio.h> using namespace ...
,*(a+2)=%c\n",a[2],*(a+2)); printf("sizeof(p)=%d\n",s ...
我相信很多人都跟我一样被某些书害的不浅,在C语言中一直还把指针跟数组名混为一谈。其实它们跟本就是两样的东西,指针就是指针,数组就是数组,网上也有很多大牛作过很多非常深入的讨论,但是个人感觉有时候把问题想得太复杂了反而不好,尤其是对于新手,因为我们新手很难搞懂编译器背着我们到底都干了些 ...