12.以下为64位机器上的C程序,请计算下列sizeof 的值。char str[]= "Hello"; char *p1 = str ;int n = 8; void *p2 = malloc(n); 请计算: sizeof(str);sizeof(p1);sizeof(n);sizeof(p2);
时间: 2023-12-06 16:03:16 浏览: 54
在64位机器上,sizeof(char)为1字节,sizeof(int)为4字节,sizeof(void*)为8字节。
1. sizeof(str) = 6,因为字符数组 "Hello" 包含了5个字符,加上结尾的 '\0',共占用6个字节。
2. sizeof(p1) = 8,因为 p1 是一个指向字符数组的指针,占用8个字节。
3. sizeof(n) = 4,因为 n 是一个 int 类型的变量,占用4个字节。
4. sizeof(p2) = 8,因为 p2 是一个指向 void 类型的指针,占用8个字节。
相关问题
sizeof("\\\Hello\040\t\")
根据引用[1]和引用的信息,可以得知sizeof(p1)的值为4,即指针p1所占用的内存大小为4字节。而对于sizeof("\\\Hello\040\t\"),由于该字符串中包含了转义字符,因此需要将其转义后再计算其大小。其中,"\\\Hello"表示字符串"\\Hello","\040"表示空格,"\t"表示制表符。因此,sizeof("\\\Hello\040\t\")的值为7。
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char str[] = "\\\Hello\040\t\042";
printf("Size of str: %lu", sizeof(str)); // 输出:Size of str: 8
return 0;
}
```
用C语言编写程序,实现两个字符串的连接,不用strcat函数。
可以使用指针来实现字符串的连接,具体步骤如下:
1. 定义两个字符串 char str1[] 和 char str2[],并分别初始化。
2. 定义一个新字符串 char result[],长度为str1和str2长度之和加1(加1是为了容纳字符串结束符'\0')。
3. 使用指针遍历str1,将其内容复制到result中。
4. 再次使用指针遍历str2,将其内容复制到result中。
5. 在result的末尾添加字符串结束符'\0'。
6. 最后输出result即为两个字符串的连接结果。
下面是示例代码:
```c
#include <stdio.h>
int main() {
char str1[] = "Hello, ";
char str2[] = "world!";
int len1 = sizeof(str1) / sizeof(char) - 1; // 字符串长度不包括结束符'\0'
int len2 = sizeof(str2) / sizeof(char) - 1;
char result[len1 + len2 + 1]; // 定义新字符串并分配内存
// 将str1复制到result中
char *p1 = str1;
char *p2 = result;
while (*p1 != '\0') {
*p2++ = *p1++;
}
// 将str2复制到result中
p1 = str2;
while (*p1 != '\0') {
*p2++ = *p1++;
}
// 在result的末尾添加字符串结束符'\0'
*p2 = '\0';
printf("%s", result); // 输出连接后的字符串
return 0;
}
```
输出结果为:Hello, world!
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)