【发布时间】:2015-09-11 17:29:32
【问题描述】:
我正在阅读有关 C 中的数组与指针的更多信息,并编写了以下程序。
#include <stdio.h>
int arr[10] = { } ;
typedef int (*type)[10] ;
int main()
{
type val = &arr ;
printf("Size is %lu\n", sizeof(val)) ;
printf("Size of int is %lu\n", sizeof(int)) ;
}
如果,我执行这个程序,那么sizeof(val) 被指定为 8,sizeof(int) 被指定为 4。
如果 val 是指向包含 10 个元素的数组的指针,它的大小不应该是 40。为什么 sizeof(val) 8 ?
【问题讨论】:
-
使用
%zu打印sizeof。
标签: c arrays pointers sizeof pointer-to-array