理解指针的定义
没想到我大四了有时候还弄不懂指针。。。
0 前言
众所周知,指针的定义如下: int* p
,这里*
的空格位置,怎么写是无所谓的。
注意,对指针的定义的理解:
0. 指针 = 地址, 我们常说的指针其实是指针变量
- 首先看见*,应当认为这是一个指针类型。
- 前面的类型是指针所指向地址的类型。 通过指针指向地址+类型长度,就能获取那块地址代表的值。(一种间接访问)
1 const 与指针
const 修饰的变量即为常量 (只读)
所以请看下面的几个问题:
1.1 const char* g_str = "123456";
g_str是指针,指向的类型是 const char
类型。所以这里其实指针是可以修改的,但是指针指向的内容(即123456
)是不可改的。
要想指针不可改,要写成
const char* const g_str = "123456"
1.2 const char g_str[] = "123456";
数组g_str, 每个数组元素是const char
类型,同样表示内容不可以改.