sizeof(数组名)和sizeof(指针)
本帖最后由 威斯布鲁特 于 2017-7-22 12:32 编辑我学习指针,搜索的时候,看到了sizeof(指针)是四个字节,但我记得我用了sizeof(数组名)在一个程序中做了一个循环。在这里假设该数组是int数组,所以说sizeof(数组名)的字节数是:数组长度 x 4。指针和数组名其实不一样?我百度的时候搜到这篇博客,虽然只是简单的介绍了指针和数组名的区别,但我觉得还不错,所以分享给鱼c的大家。还有虽然代码文字是c++的,但这个程序构造很简单,只会c语言的也很容易看懂的。(ps:代码中出现的new相当于c语言里的malloc,用来分配内存空间的。)
sizeof(数组名)和sizeof(指针)
在做这道题时:
32位环境下,int *p=new int;请问sizeof(p)的值为()
A、4 B、10 C、40 D、8
我以为正确答案为C,int类型为32位,占四个字节,10个自然就是40了,结果正确答案为A,只是指针p占的空间。
因此写段代码测试一下:
view plain copy
#include<iostream>
using namespace std;
void fun(int *P)
{
cout<<"在函数中"<<sizeof(P)<<endl;
}
int main()
{
int A;
int* B=new int;
cout<<"数组名"<<sizeof(A)<<endl;
cout<<"指针"<<sizeof(B)<<endl;
fun(A);
}
结果输出:
数组名40
指针4
在函数中4
转载自:http://blog.csdn.net/kangroger/article/details/20653255
页:
[1]