在指针的类型中,我们知道有一种指针类型为字符指针 char*
一般使用
int main(){
char ch = 'w';
char* p = &ch;
*p = 'w';
return 0;
}
还有一种使用方式如下
char* pstr = "hello world";//char* 即为创建一个字符串
printf("%s\n", pstr);
代码char* pstr=“hello world” 本质是把字符串hello world首字符的地址放到了pstr中;
下面是一道例题
char str1[] = "hello world";
char str2[] = "hello world";
char* str3 = "hello world";
char* str4 = "hello world";
if (str1 == str2){
printf("str1 and str2 are same\n");
}
else{
printf("str1 and str2 are not same\n");
}
if (str3 == str4){
printf("str3 and str4 are same\n");
}
else{
printf("str3 and str4 are not same\n");
}
输出的结果如下
这里str3和str4指向的是一个同一个常量字符串。C/C++会把常量字符串存储到单独的一个内存区域,当几个指针。
指向同一个字符串的时候,他们实际会指向同一块内存。但是用相同的常量字符串去初始化不同的数组的时候就会开辟出不同的内存块。所以str1和str2不同,str3和str4不同。