前言
这篇博客是转载@qyuhen大神知名的C99学习笔记,总结了一下其中关于指针内容的介绍。
项目中需要用到大量的c编程,所以借着学习的机会顺便记录读书笔记。
指针常量
指针常量就是指“类型为常量的指针”,初始化后不能被修改,固定指向某个内存地址。也就是说,我们不能修改指针自身的值,但是可以修改指针指向目标的值。
int x[] = {1, 2, 3, 4};
int* const p = x;
for (int i = 0; i < 4; i ++) {
int v = *(p + i);
*(p + i) = ++v;
printf("%d\n", v);
// p ++; // Compile Error!
}
常量指针
常量指针是指“指向常量数据的指针”,指针指向的目标被当作常量处理,不能通过指针做赋值操作。指针自身并非常量,可以指向其他位置,但依然不能做赋值操作。
int x = 1, y = 2;
const int *p = &x;
// *p = 100; // Compile Error!
p = &y;
printf("%d\n", *p);
// *p = 100; // Compile Error!
区别指针常量和常量指针方法非常简单:看const修饰的是谁,也就是*在const的左边还是右边。
<