明确这几点,再去理解指针:
1. 指针是一种变量
2. 指针这个变量有他自己的值;
3. 指针这个变量有他自己的类型,它的类型代表的是它指向的数据的类型
4. 顺着第二点,他的值是一个地址,这个地址对应的内存单元存放着相应的数据
重点是第二和第三点,带着这两点去理解指针就容易多了。举例:
上例中,运行结果为:
这个例子中:
pointer就是一个指针变量,而后来将 string[0]的地址赋给了它,在本例中就是0x7fff027564fd,赋值方法是通过&这个符号;
* pointer的值就是这个指针变量指向的值,即 string[0],在这个例子中是 "
这个指针变量的类型是 char,也就是说它指向的数据类型是char的。
值得注意的是,在定义指针变量的时候,*pointer并不是指针名称,pointer才是指针的名称,所以可以看到,在显示指针的时候用的是p%,以及pointer。