为什么char* c = "a";是合法的?
来源:6-7 指针的基本操作一
 
			慕仔7532636
2023-05-17
定义了一个字符类型的指针,为什么可以把一个字符串赋给它?如果是单引号的字符’a’会正常的报错。但是字符串却可以正常的编译通过运行。
写回答
	1回答
- 
				
				在C++中,字符串常量是以字符数组的形式存在的,以空字符 '\0' 结尾。当你使用 "a"这样的字符串常量时,编译器会为该字符串分配一块内存,并在末尾添加一个空字符。在char* c = "a"; 这个语句中,char* c声明了一个字符指针c。然后,将字符串常量"a"的首地址赋给了这个指针变量c。实际上,c指向了字符串常量的首字符'a'。其实更好的写法是:const char* c = "a"; 'a'是单个字符,当然不能赋给指针,char c = 'a';是可以的。00
相似问题
