sizeof(数组名) 与 sizeof(指针)

转载 2016年10月14日 12:55:43


引用知乎上的一个回答,很直观

char a[]="hello";
char *bPtr;
char b[]="good bye!";
bPtr=b;

printf("%d\n",sizeof(a)); // sizeof(char[6])

printf("%d\n",sizeof(&b)); // sizeof(char(*)[10])
printf("%d\n",sizeof(*b)); // sizeof(char)
printf("%d\n",sizeof(b)); // sizeof(char[10])

printf("%d\n",sizeof(&bPtr)); // sizeof(char**)
printf("%d\n",sizeof(*bPtr)); // sizeof(char)
printf("%d\n",sizeof(bPtr)); // sizeof(char*)

作者:Sunchy321
链接:http://www.zhihu.com/question/32170922/answer/54929467
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

下面解密上面的答案,在电脑上实际运行过!
printf("%d\n",sizeof(a)); // sizeof(char[6]) //6

printf("%d\n",sizeof(&b)); // sizeof(char(*)[10]) //4
printf("%d\n",sizeof(*b)); // sizeof(char) //1
printf("%d\n",sizeof(b)); // sizeof(char[10]) //10

printf("%d\n",sizeof(&bPtr)); // sizeof(char**) //4
printf("%d\n",sizeof(*bPtr)); // sizeof(char) //1
printf("%d\n",sizeof(bPtr)); // sizeof(char*) //4






数组名是指针,为什么sizeof(数组名)还是数组的大小

数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用。于是乎,很多程序设计者就被搞糊涂了。而许多的大学老师,他们在C语言的教学过程中也错误得给学生讲解:"数组名就是指针"。这种误解的根源在于...
  • u013176681
  • u013176681
  • 2014-08-30 22:07:59
  • 2174

sizeof(数组名)和sizeof(指针)

在做这道题时: 32位环境下,int *p=new int[10];请问sizeof(p)的值为() A、4              B、10              C、40        ...
  • KangRoger
  • KangRoger
  • 2014-03-06 21:24:08
  • 92178

C语言中数组名和指针的区别 及 sizeof用法

#i nclude int main(int argc, char* argv[]) { char str[10]; char *pStr = str;  cout  实际情况...
  • tianyue168
  • tianyue168
  • 2010-08-02 09:50:00
  • 4349

sizeof(数组名)和sizeof(指针) .

在做这道题时: 32位环境下,int *p=new int[10];请问sizeof(p)的值为() A、4              B、10              C、40        ...
  • likika2012
  • likika2012
  • 2014-10-13 09:14:23
  • 1576

C语言初探——sizeof(数组名)与sizeof(*数组名)

sizeof(数组名)与sizeof(*数组名) 举例 #include int main() { int a[5]={1,2,3,4,5}; printf("sizeof数组名=%d\n",size...
  • xujidong1576324301
  • xujidong1576324301
  • 2016-05-06 10:12:02
  • 6761

sizeof(数组名)and sizeof(指针)

数组名并不等同于指针,ex: 看一下代码: #include using namespace std; void hehe(int *p) { cout...
  • xfyae
  • xfyae
  • 2016-03-10 16:12:31
  • 196

数组名作为函数参数以及sizeof用法

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和...
  • jay_zhouxl
  • jay_zhouxl
  • 2016-06-23 17:41:53
  • 1589

sizeof在数组和指针中的区别

先看以下一段代码: #include #include using namespace std; int main() { int a[4]; int* b=new int[4...
  • Szu_AKer
  • Szu_AKer
  • 2016-09-07 10:54:37
  • 555

数组名a、数组名取地址&a以及数组大小sizeof(a)

观察下面的程序: #include int main(void) { int i, a[2]={1,2}; int *p; int (*pa)[2]; printf("...
  • IvaanLove
  • IvaanLove
  • 2015-07-29 12:42:57
  • 460

sizeof(数组名)及strlen(数组名)

程序的输出结果为:  1:100  2:4  3:1   //相当于a[100]这个数所占的字节大小,也就是一个char字节占得大小  当数组作为函数的参数进行传递时,该数组自动退化为同类型的...
  • lijinqi1987
  • lijinqi1987
  • 2014-09-30 15:46:01
  • 1514
收藏助手
不良信息举报
您举报文章:sizeof(数组名) 与 sizeof(指针)
举报原因:
原因补充:

(最多只允许输入30个字)