C语言高级编程:sizeof计算数组大小需要注意的问题

测试平台:64位 X86 Ubuntu

1. 代码:

#include <stdio.h>

void main(void)
{
    char a[20];

    printf("sizeof(a) = %d\n", sizeof(a));
    printf("sizeof(&a) = %d\n",sizeof(&a));
    printf("sizeof(&a[0]) = %d\n",sizeof(&a[0]));
    printf("sizeof(a[0]) = %d\n",sizeof(a[0]));
}

2. 结果:

baoli@ubuntu:~/c$ ./a.out
sizeof(a) = 20
sizeof(&a) = 8
sizeof(&a[0]) = 8
sizeof(a[0]) = 1

3. 分析:

1)只有sizeof(a)是计算数组大小

2)sizeof(&a)和sizeof(&a[0])是计算指针大小(64位系统是8)

发布了170 篇原创文章 · 获赞 116 · 访问量 33万+

猜你喜欢

转载自blog.csdn.net/u012247418/article/details/102370479
今日推荐