1. 改变const修饰的“只读变量”
#include <stdio.h>
int main()
{
const int a = 9;
int *pa = (int *)&a;
*pa = 10;
printf("a = %d\n", a);
return 0;
}
2. memmove(void *dest, const void *src, size_t count), 当dest与src有重叠的情况, 重叠区域会改变,但是*src是只读的??
#include <stdio.h>
int main()
{
int a = 9;
const int *pa = &a;
int *p = &a;
*p = 10;
printf("a = %d\n", a);
return 0;
}
所以,int a; const int *pa = &a; 表示pa指向的整形*pa不可改变,并不是a不可改变,只是不能通过pa来改变!
const int c; const int *pc = &c; 则表示不能通过指针pc来改变,也不能直接为c赋值或者用其它指针改变!-----(当然,只要在栈里就可以改变,这里不研究)