C语言赋值语句 char*p="string"为什么是对的?

2020-08-16 科技 124阅读
C语言赋值语句 char*p="string" ;是定义指针变量,并进行指针变量初始化的标准格式,没有错误。
该语句相当于以下两句:
char *p ; //定义指针变量,未初始化
p="string" ; //p指向string所在的地址,即:p中存储的是"string"串的首地址。
*是指针变量取地址中的数据运算符:
*p == 's' ; //*p是指一个字符,当前是s , 注意*p不是字完整的符串
p++ ;
*p=='t' ; //p后移一位,指向t
初学者认识的误区在于:认为char*p="string" ; 这里的* 与上面例子中的*p中的*认为是同一回事!这是错误的认识。
char*p="string" ; 中的*是指针变量定义中的标识,*跟随的是char , 即:这里是定义一个指针变量p, 其存储的数据类型是char *类型,即p本身存储的是char *类型(地址)数据。
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com