在C语言中,字符串常量实质是字符数组,并且它存储在静态区(不可修改)。当字符串常量作为右值(也只能作为右值)时,它的值其实就是这个字符数组的第一个字符的地址。
所以,把一个字符串常量赋值给一个字符指针,就是把这个字符串的第一个字符的地址赋值给这个指针变量。
字符串双引号做了3件事:
1.申请了空间(在常量区),存放了字符串
2. 在字符串尾加上了'/0'
3.返回地址给string
地址就是第一个字符的地址
你两种写法都是对的
定义了一个字符指针变量,然后将字符串的地址赋值给了该变量。