指针常量
int main()
{
char arr1[] = "heh";
*arr1 = "haha";//可改变值
arr1 = "haha";//地址是常量,不可改
arr1++//报错,地址不能改变值
arr1+1//不报错,地址并没有改变
printf("%s\n", arr1);
char arr[] = "aa";
char* arr2 = "hehe";
arr2 = arr;//可改变指向
//*arr2 = 'a';//不可改变值,常量字符串
printf("%s\n", arr2);
return 0;
}
int main()
{
int a = 10;
&a = 20;//地址是常量
10 = 20;//常量不能修改
&10 = 20;//常量不能修改
char arr[] = { 0 };
arr = "hehe";//地址是常量
int a = 10;
char* pa2 = &a;
*pa2 = 3;//变量
printf("%d", a);
int a = 10;
char* pa2 = a;
pa2 = 3;//常量
printf("%d", a);
return 0;
}
指针变量修改
void mock_strcpy(char*arr1,char*arr2)
{
*arr1 = *arr2;
}
int main()
{
char arr1[] = { 0 };
char arr2[] = "hee";
mock_strcpy(arr1,arr2);
printf("%s\n", arr1);
return 0;
}
常量字符串
char*pa="aheh";
char*pa2="hell";
strcmp(pa,pa2);
常量字符串不可修改
存储在只读区
int main()
{
char str[] = "hehe";
char* pa = str;
*str = 'e';
//str = 'e';//地址常量
*pa = 'a';//和*str = ='e'一样
pa = 'a';//修改指向
printf("%s\n", str);
printf("%c", pa);
return 0;
}