C语言中SizeOf指针的大小是多少?
- 内容介绍
- 文章标签
- 相关推荐
本文共计309个文字,预计阅读时间需要2分钟。
这段代码的目的是声明一个字符数组`c`,初始化为`'a'`, `'b'`, `'c'`,然后通过指针`p`访问数组的第一个元素,并打印出指针和数组的地址。以下是简化后的版本:
cchar c[]={'a', 'b', 'c'};int *p=&c[0];printf(%d\n, sizeof(p)); // 打印指针大小printf(%d\n, sizeof(c)); // 打印数组大小
这段代码中,`sizeof(p)`打印出指针的大小,通常为4个字节(在32位系统中),而`sizeof(c)`打印出数组`c`的大小,即3个字符加上一个空字符`\0`,总共4个字节。所以,`printf`语句会分别打印出4和1。这里没有出现错误,`p`指向的是`c`的第一个元素的地址,而`c`是一个包含4个字节(3个字符加上一个空字符)的数组。
本文共计309个文字,预计阅读时间需要2分钟。
这段代码的目的是声明一个字符数组`c`,初始化为`'a'`, `'b'`, `'c'`,然后通过指针`p`访问数组的第一个元素,并打印出指针和数组的地址。以下是简化后的版本:
cchar c[]={'a', 'b', 'c'};int *p=&c[0];printf(%d\n, sizeof(p)); // 打印指针大小printf(%d\n, sizeof(c)); // 打印数组大小
这段代码中,`sizeof(p)`打印出指针的大小,通常为4个字节(在32位系统中),而`sizeof(c)`打印出数组`c`的大小,即3个字符加上一个空字符`\0`,总共4个字节。所以,`printf`语句会分别打印出4和1。这里没有出现错误,`p`指向的是`c`的第一个元素的地址,而`c`是一个包含4个字节(3个字符加上一个空字符)的数组。

