目录
一、字符指针
1、一般使用
#include<stdio.h>
int main()
{
char ch = 'm';
char* pch = &ch;
*pch = 'n';
printf("%c\n",*pch);
return 0;
}
2、另外一种使用方式
int main()
{
char arr[] = "abcdef";
printf("%s\n",arr);
char* p = "abcdef";
printf("%s\n", p);
return 0;
}
"abcdef"是常量字符串,这里本质上是把字符串abcdef首字符的地址放到了 指针pch中。
此图的意思即把一个常量字符串的首字符a的地址存放到指针变量pch中。
案例:
int main()
{
char arr1[] = "the fing students";
char arr2[] = "the fing students";
if (arr1 == arr2)
{
printf("same\n");
}
else
{
printf("not same\n");
}
const char* arr3 = "the fing students";
const char* arr4 = "the fing students";
if (arr3 == arr4)
{
printf("same\n");
}
else
{
printf("not same\n");
}
return 0;
}
C会把常量字符串存到单独的一个内存区域,当不同的指针指向同一个字符串时,实际指向同一块内存。所以arr3与arr4相同。
但是相同的字符串去初始化不同的数组的时候会开辟出不同的内存块。所以arr1与arr2不同。