#include<stdio.h>
int main()
{
const char *a = "hello";
const char *b = "world";
const char *p = a;
p = b;
printf("a地址:%p\n", (void *)a);
printf("p地址:%p\n", (void *)p);
printf("ASCII码:%d\n", *p);
printf("首字母(指针指向的是首地址):%c\n", *p);
printf("首地址对应存储的有效值:%s\n", p);//不能用*p因为首地址对应的是单个字符而不是字符串
return 0;
}
运行结果为:
此处const限定指针*p是一个常量(只读),但是p可变,从此看出p的值改变会造成*p指向的改变(尽管*p是一个常量)。
说明使用const限定指针变量时可以使得变量(用于传参时的参数)本身值受到一定保护。充其量改变其指向。(?)
#include<stdio.h>
int main()
{
const char *a = "hello";
const char *b = "world";
const char *p = a;
p = "new";
printf("a地址:%p\n", (void *)a);
printf("p地址:%p\n", (void *)p);
printf("ASCII码:%d\n", *p);
printf("首字母(指针指向的是首地址):%c\n", *p);
printf("首地址对应存储的有效值:%s\n", p);//不能用*p因为首地址对应的是单个字符而不是字符串
return 0;
}