c语言中用指针赋值字符串为什么不加*,如下

2020-06-14 科技 168阅读
a="cool";
这是地址赋值,将一个常量字符串的首地址赋值给a这个指针。
*a="cool";
这是字符赋值,不是字符串!虽然a叫字符串指针,但char* a这样的定义,*a必然是一个字符,而不是多个。因此后面的常量会被忽略为一个字符,进行数值赋值(也可以理解为拷贝赋值,区别于地址赋值)。
在a没有分配地址的情况下,直接 *a=“xxx” 会造成内存报错,而a=则不会。
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com