鱼C论坛

 找回密码
 立即注册
查看: 2100|回复: 0

[技术交流] sizeof(数组名)和sizeof(指针)

[复制链接]
发表于 2017-7-22 12:25:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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占的空间。
因此写段代码测试一下:

  1. view plain copy
  2. #include<iostream>  
  3. using namespace std;  
  4. void fun(int *P)  
  5. {  
  6.     cout<<"在函数中"<<sizeof(P)<<endl;  
  7. }  
  8. int main()  
  9. {  
  10.     int A[10];  
  11.     int* B=new int[10];  
  12.     cout<<"数组名"<<sizeof(A)<<endl;  
  13.     cout<<"指针"<<sizeof(B)<<endl;  
  14.     fun(A);  
  15. }  
复制代码


结果输出:
数组名40
指针4
在函数中4

转载自:http://blog.csdn.net/kangroger/article/details/20653255
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 08:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表