sizeof数组名和字符指针是有区别的。 代码没有啥实际意义,就是为了看一下sizeof数组名和字符指针的区别。 结果为: length:8length:2048length:8length:8 当数组名作为函数参数传递时,会退化为字符指针。 ...
在做这道题时: 位环境下,int p new int 请问sizeof p 的值为 A B C D 我以为正确答案为C,int类型为 位,占四个字节, 个自然就是 了,结果正确答案为A,只是指针p占的空间。 因此写段代码测试一下: 或者 结果输出: 数组名 指针 在函数中 由此可见,数组名并不是完全等同于指针。虽然它们都可以通过指针方式访问数组。 但是数组在作为函数参数传递过程中,会退化成指针。这 ...
2016-06-14 14:40 1 4716 推荐指数:
sizeof数组名和字符指针是有区别的。 代码没有啥实际意义,就是为了看一下sizeof数组名和字符指针的区别。 结果为: length:8length:2048length:8length:8 当数组名作为函数参数传递时,会退化为字符指针。 ...
数组名本身是个地址常量,但是某些特殊情况下它的语义可以发生改变。例如sizeof(a),这时a表示整个数组对象(这里指语法对象,不是指类的实例)而不是这个常量本身。基于这个语义,对数组名取地址也是合法的,对于数组a来说&a的结果等于a这个地址常量本身的值。这是C/C++标准委员会 ...
; } sizeof(指针),sizeof(数组名)的区别: 例子: #include<iostr ...
",sizeof(arr)); 输出结果为56,4,表示最后长度为14的数组。 数组名代表元素的首地 ...
sizeof计算数据类型或变量长度(包括‘\0’),如果计算的变量是一个表达式或函数,只与其最终结果或返回值的类型相关,表达式并不计算,函数也不进行执行。注意计算字符串时计算\0,而strlen不计算\0。 int a[10]; sizeof(a)//计算的就是整个数组的长度,为40 ...
的。 只有在两种场合下,数组名不用指针常量表示,其他都是一个常量指针,也称为数组的 “退化” 。两种场合为: 1 ...
,*(a+2)=%c\n",a[2],*(a+2)); printf("sizeof(p)=%d\n",s ...
作者:SHI家的鱼 链接:https://www.zhihu.com/question/41805285/answer/202040382 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 1. 己址 数组和指针,都是有自己的地址 ...