|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 威斯布鲁特 于 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[10];请问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[10];
- int* B=new int[10];
- cout<<"数组名"<<sizeof(A)<<endl;
- cout<<"指针"<<sizeof(B)<<endl;
- fun(A);
- }
复制代码
结果输出:
数组名40
指针4
在函数中4
转载自:http://blog.csdn.net/kangroger/article/details/20653255 |
|