指针的作用
1.使程序简洁、紧凑、高效
2.有效地表示复杂地数据结构
3.动态分配内存
3.得到多一个的函数返回值
指针的概念
1.变量与指针
根据程序编译器的不同,int定义的字节数不同。(数据占用内存存储器的大小不同)常用的单片机编译器,如KEIL下,51类单片机的C语言中,int代表2个字节(16位)
在vc里面:int 4个字节,,char 1个字节,,float 4个字节
在tc里面:int 2个字节,其他都一样
内存中每个字节有一个编号----地址
程序中:int i; float k; 编译或函数调用时为其分配内存单元
2.指针与指针变量
指针:一个变量的地址
指针变量:专门存放变量地址的变量
3.&与*运算符
&:取址运算符,取变量的地址。&i,i是一个变量,取变量i的地址
单目运算符,优先级2,结合性:自右向左
*:取值运算符,取指针所指向变量的内容。*i,i是一个指针,取指针i所指向的内容
单目运算符,优先级2,结合性:自右向左
e_16,color_FFFFFF,t_70)
i_point-----指针变量,他的内容是地址量,是上图i的地址2000
*i_point-----指针的目标变量,他的内容是数据,是上图i的值100
&i_point-----指针变量所占用内存的地址 是上图的2100
i_point=&i=&(*i_point)
i=i_point=(&i)
4.直接访问与间接访问
直接访问:按变量地址存取变量值 k=i
间接访问:通过存放变量地址的变量去访问变量 k=*i_point
5.定义指针变量及初始化
int *p1,*p2;
int i=10;
int *p1=&i ; //变量i必须已说明过,类型应该一致,虽然没有报错,但是很危险,没有给指针变量p1赋值,位置随机
给p1赋值,这样p1就不会随机