一、常量字符串是什么?
常量字符串是一个常量,它的值是首字符的地址
比如 "abcdefg" 或 "123456789" 就是常量字符串
二、常量字符串与普通字符串的区别
1.常量字符串不可更改,而普通字符串可以更改
利用memcpy内存拷贝函数,将常量字符串“123456789”中的前四个字节拷贝到“abcdefg”中,代码出错,因为常量字符串“abcdefg”不可修改
char* p1 = "abcdefg"; char* p2 = "123456789"; memcpy(p1, p2, sizeof(char) * 4);//报错
普通字符串可以修改
char arr[] = "abcedfg"; arr[2] = 'C'; printf("%s", arr);//abCdefg
2.常量字符串可以用作数组名
由于常量字符串的值是首字符地址,数组名的值也是首元素的地址,所以常量字符串可以当成数组名使用
char* p = "abcdefg"; printf("%c", "abcedfg"[5]);//f