strcat("12","34","&133&1");
时间: 2024-01-29 17:10:39 浏览: 21
根据提供的引用内容,以下是关于`strcat`和`strncat`的C/C++实现以及关于指针的一些说明:
1. `strcat`和`strncat`的C/C++实现:
```c
char* strcat(char* destination, const char* source) {
char* ptr = destination + strlen(destination);
while (*source != '\0') {
*ptr++ = *source++;
}
*ptr = '\0';
return destination;
}
char* strncat(char* destination, const char* source, size_t num) {
char* ptr = destination + strlen(destination);
while (*source != '\0' && num > 0) {
*ptr++ = *source++;
num--;
}
*ptr = '\0';
return destination;
}
```
2. `while ( (*cp++ = *src++) != ‘\0’);` 可以用 `while ( *cp++ = *src++ );` 代替。这是因为在C/C++中,赋值操作的结果是被赋值的值,所以这两个表达式是等价的。
3. 指针和普通变量的区别:
指针是一种普通的变量,保存的数值是一个整型数据,指向的是一段内存地址。与普通变量不同的是,指针变量保存的是内存地址,而不是具体的数值。指针变量可以通过解引用操作符`*`来访问指向的内存地址上的值。
4. `a`和`&a`的区别:
`a`表示变量`a`的值,而`&a`表示变量`a`的地址。
关于`strcat("12","34","&133&1")`的问题,这个函数调用是错误的。`strcat`函数只接受两个参数,第一个参数是目标字符串,第二个参数是要追加的源字符串。正确的调用应该是`strcat("12", "34")`。这个函数的作用是将源字符串追加到目标字符串的末尾。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)