若有定义char* p="computer";则表示p的值是字符串" computer "。若有定义char* p="computer";则表示p的值是字符串" computer "。
时间: 2023-12-04 07:03:40 浏览: 46
是的,你说的对。在这两个定义中,p是一个指向字符串常量的指针,它的值是字符串"computer"的第一个字符的地址。第一个定义中,空格字符 " " 不在 "computer" 的前面;第二个定义中,空格字符 " " 在 "computer" 的前面,但它实际上只是一个普通的字符。无论哪种情况,p指向的都是同样的字符串常量"computer"。
相关问题
若有定义char* p="computer";则表示p的值是字符串" computer "。
不完全正确。定义char* p="computer"表示p是一个指向字符串"computer"的指针,即p指向字符串常量的首地址。在C语言中,字符串常量是以null字符('\0')结尾的字符数组,所以字符串"computer"实际上是由7个字符组成的,最后一个字符是'\0'。因此,p指向的是字符数组的首地址,也就是字符'c'的地址。如果需要访问字符串中的某个字符,可以通过指针偏移来访问。例如,*(p+2)表示访问字符串中的第三个字符,即字符'm'。
#include<stdio.h> char *strc(char *s1,char *s2) { char *p=s1; while (*s2!='\0') { *p++=*s2++; } return s1; } int main(void) { char s1[30]="computer OK!",s2[]="language",*pt; pt=strc(s1,s2); printf("%s\n",pt); }
这段代码的作用是在字符串s1的末尾添加字符串s2,并返回s1的地址。具体实现是通过指针p指向s1的首地址,然后遍历字符串s2,依次将其字符赋值给p所指向的地址,同时p不断向后移动,直到遍历完s2。最后返回s1的地址。
在这个具体的例子中,s1的初始值为"computer OK!",s2的值为"language",执行strc函数后,s1的值变为"computer OK!language",并且返回s1的地址。最终输出的就是s1的值"computer OK!language"。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![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://img-home.csdnimg.cn/images/20210720083646.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)