指针基本知识和定义

硬盘保存数据是基于物理的磁性,访问靠机械运动,所以速度比较慢.内存保存数据是基于电信号,速度比较快,但是所有数据不能长久保存,掉电即失.
指针的介绍都是以内存和地址开始的,内存的基本单位是字节(byte),每一个字节都有一个独一无二的地址.
为了保存内存中的一个地址值,C 语言需要一种特殊的变量类型,这种变量类型就是指针变量类型。整型变量保存一个整数,字符变量保存一个字符,指针变量保存一个地址.

指针声明

指针的定义通常有两种风格,建议采用风格1,char是一个基本类型,*p说明是一个指针, char*连在一起就显得比较怪异.当连续定义两个指针,容易出错,如下面的第三行代码

1
2
3
4
char *p; // 风格 1
char* p; // 风格 2
char* p1, p2; // 错误
char *p1, *p2; // 正确

1
2
3
4
*p = &a; /* p = &a is right */
i**p; /*- what is this?*/
*p**p; /*- and then? */
*p/*p; /*-My God!*/