Char str[ ] = “http://www.xgimi.com/” char *p = str ; int n = 10; void *p = malloc( 100 ): 请计算 (1) sizeof (str ) =
时间: 2024-06-08 13:09:28 浏览: 69
char str[] 与 char *str的区别详细解析
在计算 `sizeof(str)` 之前需要先了解一下字符串的存储方式。
在 C 语言中,字符串实际上是以字符数组的形式存储的,由于字符串是以 null 字符(`\0`)作为结尾的,因此字符数组的长度必须比字符串的长度大 1,以容纳这个 null 字符。
因此,对于字符串 `str`,它实际上是一个长度为 22 的字符数组,其中包括 21 个字符和一个 null 字符。因此,`sizeof(str)` 的结果为 22。
另外,代码中的 `void *p = malloc(100)` 有一个语法错误,应该修改为 `void *ptr = malloc(100)`。这行代码的作用是动态分配了一个大小为 100 字节的内存块,并将其首地址赋值给指针变量 `ptr`。
阅读全文