以下为 Linux下的 32 位 C程序,请计算 sizeof 的值
以下为 Linux下的 32 位 C程序,请计算 sizeof 的值。
char str[] = “Hello” ; char *p = str ; int n = 10; 请计算 (1)sizeof (str ) = (2)sizeof ( p ) = (3)sizeof ( n ) =
(1) sizeof (str)
= 6
(2) sizeof (p)
= 4
(3) sizeof (n)
= 4
解释:
sizeof (str)
返回的是数组 str
的大小,而数组的大小是由其内部存储的元素数量和每个元素的大小来确定的。
在代码中,str
是一个字符数组,初始化为 "Hello",这个数组包含 6 个字符:'H', 'e', 'l', 'l', 'o' 和一个空字符 '\\0'(用于表示字符串的结束)。这个空字符也会被计入数组的大小,因此 sizeof (str)
返回的是整个数组的大小,即 6 个字节。
sizeof (p)
是 4 是因为在 32 位 Linux 下,指针的大小通常是 4 个字节。指针是用来存储变量的地址的数据类型,而在 32 位系统中,内存地址通常使用 4 个字节来表示。所以,sizeof (p)
返回指针变量 p
的大小,它是 4。
这意味着,不论指针指向的数据类型是什么,指针本身的大小在 32 位系统下都是相同的,即 4 个字节。
