指针:
表示一些复杂的数据结构
快速的传递数据
使函数返回一个以上的值
能直接访问硬件
能够方便的处理字符串
是理解面向对象语言中引用的基础
1、指针的定义:
地址:内存单元的编号(从0开始的非负整数)
指针:指针就是地址,地址就是指针
指针变量是用来存放地址(内存单元)的变量
指针的本质是操作受限(无加法、乘法、除法)的非负整数
2、指针和一维数组:
一维数组名:
一维数组名是一个<指针常量>(注意:是常量),
用于存放一维数组第一个元素的地址
举一个例子:
#include<stdio.h>
void main()
{
int a[5];
printf("%#X\n",&a[0]);
printf("%#X\n",a);
}
上述程序输出结果为两个分段的16进制地址。
3、下标和指针的关系:
如果p是个指针变量,则p[i] 永远等价于 *(p+i)
如果一个函数要处理一个一维数组(鉴定一个一维数组),则需要数组的哪些信息:
数组的首地址(数组第一个元素的地址);数组元素的个数。
4、指针变量的运算
指针变量不能加、乘、除,但是相减只有一种情况:
两个指针是属于同一个连续区域中的不同存储单元。