sizeof(&a)和sizeof(a)
时间: 2024-04-28 20:16:42 浏览: 8
sizeof(&a)返回的是指针的大小,而sizeof(a)返回的是变量a的大小。
sizeof(&a)返回的是指针的大小,因为&操作符取得的是变量a的地址,所以sizeof(&a)返回的是指针的大小,通常是4或8字节,取决于系统的位数。
sizeof(a)返回的是变量a的大小,即变量a所占用的内存空间大小。这个大小取决于变量a的类型和系统的位数。例如,如果变量a是int类型,且系统是32位的,则sizeof(a)通常是4字节。
相关问题
sizeif(a)/sizeof(int)与sizeof(&a)/sizeof(int)区别
sizeif(a)/sizeof(int)与sizeof(&a)/sizeof(int)的区别在于操作数的不同。
1. sizeif(a)/sizeof(int):这个表达式中,sizeif(a)表示的是变量a所占用的字节数,sizeof(int)表示的是int类型所占用的字节数。所以,sizeif(a)/sizeof(int)的结果是变量a所占用的字节数除以int类型所占用的字节数,得到的是变量a占用的int类型的个数。
2. sizeof(&a)/sizeof(int):这个表达式中,sizeof(&a)表示的是变量a的地址所占用的字节数,sizeof(int)表示的是int类型所占用的字节数。所以,sizeof(&a)/sizeof(int)的结果是变量a的地址所占用的字节数除以int类型所占用的字节数,得到的是变量a的地址占用的int类型的个数。
int a[100]; sizeof (a) 的值是多少? sizeof(a[100])呢? sizeof(&a)呢? sizeof(&a[0])呢?
a) 的值是 400,因为 a 是一个包含 100 个 int 类型元素的数组,每个 int 类型占用 4 个字节,所以总共占用 400 个字节。
sizeof(a[100]) 的值是 4,因为 a[100] 表示数组 a 中的第 101 个元素,但是 a 只有 100 个元素,所以 a[100] 是越界访问,其结果是未定义的。但是 sizeof(a[100]) 的值是已知的,因为它只是一个 int 类型的变量,占用 4 个字节。