char *p = str; sizeof(p);
时间: 2024-04-11 14:30:48 浏览: 135
sizeof(p)的结果是多少?
在C语言中,指针变量的大小是固定的,不受指向的数据类型或数据的大小影响。通常情况下,指针的大小在32位系统上为4字节,在64位系统上为8字节。
因此,无论指针p指向的是一个字符数组还是其他类型的数据,sizeof(p)的结果都将是固定的。在大多数系统上,sizeof(p)将是4或8,具体取决于您所使用的计算机体系结构。
相关问题
在32位系统中,请计算 sizeof(p )+sieof (str )+sizeof( p.str ) 的值():void*p=malloc(8);char str[]="hello";char*p_str=str;
在32位系统中,指针大小为4字节,字符串"hello"的长度为6字节(包括字符串结尾的'\0'),则可以计算出:
- sizeof(p) = 4
- sizeof(str) = 6
- sizeof(p.str) 是错误的写法,因为p是一个指针变量,没有属性str。如果想获取指针p指向的字符串长度,可以使用strlen函数,例如:
```
size_t len = strlen(p_str);
```
因此,无法计算sizeof(p.str)的值。
以下为 Linux下的 32 位 C程序,请计算 sizeof 的值。 char strl] =“Hello"; char *p = Str; char n= 10; 请计算 sizeof (str ) = sizeof ( p ) = sizeof ( n )=
根据你提供的C程序,请计算`sizeof`的值。以下是对应的计算结果:
```c
#include <stdio.h>
int main() {
char str[] = "Hello";
char *p = str;
char n = 10;
printf("sizeof(str) = %zu\n", sizeof(str));
printf("sizeof(p) = %zu\n", sizeof(p));
printf("sizeof(n) = %zu\n", sizeof(n));
return 0;
}
```
输出结果:
```
sizeof(str) = 6
sizeof(p) = 4
sizeof(n) = 1
```
解释:
- `sizeof(str)` 返回字符串 `str` 所占用的内存大小,包括字符串尾部的空字符 `\0`,因此大小为 6。
- `sizeof(p)` 返回指针 `p` 所占用的内存大小,32位系统中指针大小为 4 字节。
- `sizeof(n)` 返回字符变量 `n` 所占用的内存大小,字符变量占用 1 字节。
阅读全文