c++数组名 和 指针
charstr[]="helloworld";char*mStr=str;cout<<*&str<<endl;//输出helloworldcout<<*mStr<<end...
char str[] = "hello world";
char *mStr = str;
cout << *&str << endl; //输出 hello world
cout << *mStr << endl;//输出 h 为什么不输出hello world???
char *mpStr = &str;//这里为什么会显示语法错误??? 展开
char *mStr = str;
cout << *&str << endl; //输出 hello world
cout << *mStr << endl;//输出 h 为什么不输出hello world???
char *mpStr = &str;//这里为什么会显示语法错误??? 展开
5个回答
展开全部
// 字符指针
cout << char_pointer; // will output the string from the address
// *字符指针 ===> 字符
cout << *char_pointer; // will output the char at the address
我们来看看
char str[] = "hello world"; // str is a (字符数组)字符指针, 具体点是 A12_c, 12个字符数组,char[12]
char *mStr = str; // 定义新 字符指针 mStr, 指向 str
// 这句话类似于 cout << str << endl; 输出字符串
cout << *&str << endl; //输出 hello
// 输出字符
worldcout << *mStr << endl;//输出 h 为什么不输出hello world???
// str 是字符数组, &str 是字符数组地址(PA12_c),类型是 PA12_c
char *mpStr = &str;//这里为什么会显示语法错误???
char *mpStr = (char*)(&str); // 强制转换类型就没问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char数组的数组名类型为char*,输出
追答
char数组的数组名是char*类型的,储存着数组第一个元素(下标为零)的地址,所以令一个指针等于数组名,再对该指针解引用,输出的是数组的地址元素而不是整个数组
另外,数组是储存在一串(暂且这么说)地址中,比如char a[5]={...},数组a的5个元素储存5个不同地址中,&a[n]+1=&a[n+1],
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2019-04-04
展开全部
char *mpStr = &str;//这里为什么会显示语法错误???
------------------------------
其实是可以的, &str是一个地址值, 是str字符串的首地址, 转换一下就行了
char *mpStr=(char*)&str;
printf("%s",mpStr);
------------------------------
其实是可以的, &str是一个地址值, 是str字符串的首地址, 转换一下就行了
char *mpStr=(char*)&str;
printf("%s",mpStr);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询