C++指针指向字符串问题
如果定义了指针*p指向一个字符串"China"cout<<p;的结果是Chinacout<<*p;的结果是C为什么?...
如果定义了 指针 *p 指向 一个字符串 "China"
cout<<p; 的结果是 China
cout<<*p;的结果是 C
为什么? 展开
cout<<p; 的结果是 China
cout<<*p;的结果是 C
为什么? 展开
5个回答
展开全部
p是字符串的首地址
在输出时系统会自动的往下加,也就是说指针会自动指向下一个字符的地址,直到指向最后一个,,输出最后一个字符 ,所以cout<<p会输出整个字符串
*p是字符串的第一个字符所以cout<<*p只会输出第一个字符
在输出时系统会自动的往下加,也就是说指针会自动指向下一个字符的地址,直到指向最后一个,,输出最后一个字符 ,所以cout<<p会输出整个字符串
*p是字符串的第一个字符所以cout<<*p只会输出第一个字符
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1) cout后面接字符串的地址,表示输出这个字符串, 所以结果是China
2) p 是char *型,*p表示取一个char字节的值,*p等价于p[0], *(p+1)等价于p[1], ..., 所以输出C
2) p 是char *型,*p表示取一个char字节的值,*p等价于p[0], *(p+1)等价于p[1], ..., 所以输出C
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
cout<<p; 的结果是 China //相当于scanf("%s",p);
cout<<*p;的结果是 C //相当与scanf("%c",p[0]);
c++ 重载了<< .
cout<<*p;的结果是 C //相当与scanf("%c",p[0]);
c++ 重载了<< .
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询