我们都知道 char* a;意味声明一个指针a指向字符型变量。那么为什么可以用“abc”字符串直接初始化 char*型指针呢?
那是因为“”干了三件事情:1、申请了内存(全局变量区);2、在字符串尾部添加了/0 ;3、返回了字符串的地址!!!!!
所以,很清楚char* a="abc" 这句话是正确的(编译器不同,有时需加上const关键字,因为数组名退化为的是常量指针)。
我们都知道 char* a;意味声明一个指针a指向字符型变量。那么为什么可以用“abc”字符串直接初始化 char*型指针呢?
那是因为“”干了三件事情:1、申请了内存(全局变量区);2、在字符串尾部添加了/0 ;3、返回了字符串的地址!!!!!
所以,很清楚char* a="abc" 这句话是正确的(编译器不同,有时需加上const关键字,因为数组名退化为的是常量指针)。