为什么c语言用指针输出字符串不用加*号

为什么c语言用指针输出字符串不用加*号如图,这样难道不是输出首地址吗?

为什么c语言用指针输出字符串不用加*号?因为char*STR定义了一个char*字符指针STR,而STR指向了ILOVECHINA中的第一个字符I。
在cout流中有一个复制循环,它是一个具有数百个输出STR点的字符串,在这个字符串中,STR被赋值给临时指针,以便一个接一个地输出。
然后*STR是一个字符,也就是I*是一个derecration,也就是STR指向的那个字符,所以*STR就是I这个不能被赋值或移位所以它不能被打印出来。
扩展资料:
关于字符串指针
1.字符数组中存储一个度字符串
Char字符串[]="LinuxC";
Printf("%s\n",字符串);
字符串是一个字符数组的名称,它也是应答字符数组的第一个地址。
2.使用字符串指针指向一个字符串
如果你不想定义一个字符数组,你可以用一个指针指向一个字符串,称为“字符串指针”,例如:
Char*p="LinuxC";
Printf(“%s\n”,p);
“LinuxC”是一个字符串常量。字符串常量的C语言:在内存中打开一个字符数组来存储字符串常量,并将打开的字符数组的第一个地址保存到p。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-01-24
printf在输出字符串时,需要的是指向字符串的门地址。而str就是它所需要的这样一个首地址。本回答被提问者和网友采纳
相似回答