1、指针的作用
使程序简洁、紧凑以及高效;
有效地表示复杂的数据结构;
动态分配内存;
能直接访问硬件;
能够方便地处理字符串;
得到多于一个的函数返回值;
2、内存、地址以及变量
内存
程序和数据存储在硬盘等存储器上,不管开机还是关机,都是存在的;
运行程序时或打开数据时,这些数据必须从硬盘上先传到内存,之后才送入CPU进行执行处理;
CPU直接从内存中读取数据,处理完成后将结果再写入内存。
地址
在计算机中,存储器的容量是以字节为基本单位的;
为了方便存储和读取内存,内存的每个字节给一个编号;
变量
变量用来在程序中保存数据。
3、从键盘输入一个变量,输出变量的内容和变量的地址。
#include <stdio.h>
int main()
{
int data = 0;
scanf("%d",&data); //从键盘输入一个变量
printf("%d %p\n",data,&data); //打印输出该变量及变量的地址
return 0;
}
4、指针的形式
数据类型 *指针变量名
如:char *p。
p为指针变量;
*p为指针的目标,他的内容是地址量;
&p为指针变量占用的存储区域。
5、指针的书写形式
把一个普通变量的地址赋给一个相同数据类型的指针;
把一个已有地址的指针变量赋给具有相同数据类型的另一个指针变量;
把一个数组的地址赋给具有相同数据类型的指针。
6、指针的大小
32位系统,一个指针变量的大小就是4个字节;
64位系统,译者指针变量的大小就是8个字节。