关于字符串数组的应用
#include <iostream>using namespace std;
void main(){
char ch={"AAA","BB","CCC"};
char *p=NULL;
char(*q)=NULL;
q=ch;
int i;
p=new char;
*p='b';
*(*q+3)=*p;
for(i=0;i<3;i++)
cout<<q<<endl;
}
结果为:AAAbBB
BB
CCC
哪位大佬能解释一下:AAbBB怎么回事? 本帖最后由 jackz007 于 2019-12-4 23:13 编辑
q 指向 ch,* p = 'b',那么,语句:
*(* q + 3) = * p ;
实际上就是下面的语句:
ch = 'b' ;
而 ch 应该是字符串 ch 的结束标志 '\0',可是,现在却变成了字符 'b' ,其结果,原来的字符串 ch 和 ch 拼接成为一个新的字符串 'AAAbBB',字符串 ch 成为字符串 ch 的后半部分。就是说,ch 其实是包含 ch 的。这个时候,如果打印 ch ,会得到 'AAAbBB',如果打印 ch ,还是原来的 'BB',如果打印 ch 自然依旧是 'CCC'。 jackz007 发表于 2019-12-4 19:15
q 指向 ch,* p = 'b',那么,语句:
实际上就是下面的语句:
感谢大佬,已明白
页:
[1]