威斯布鲁特 发表于 2017-7-22 12:25:30

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]
查看完整版本: sizeof(数组名)和sizeof(指针)