指针(一)

时光总嘲笑我的痴心妄想 提交于 2019-12-18 05:22:47

指针-----地址
内存区的每一个字节都有一个编号,这就是地址
将地址形象化的称为指针。
数据是分类型的,对不同类型的数据,在内存中分配的存储单元大小(字节数)和存储方式是不同的。
对变量的访问都是通过地址进行的。
直接按变量名进行的访问,称为“直接访问”方式。
间接访问:即将变量i的地址存放在另一变量中,然后通过该变量来找到变量i的地址,从而访问i变量。
指针就是通过地址来体现的。
一个变量专门用来存放另一变量 的地址(即指针),则他称为指针变量,指针变量的值是地址(即指针)。
定义指针变量:
基类型 *指针变量名
说明:基类型可以是任意数据类型
说明其后的变量名是指针变量名
指针变量名是任意合法的标识符
例如:
pointerA
指针变量赋值:
先定义,后赋值
初始化,定义的同时赋值
通过指针访问变量(间接访问)
*代表指针所指向的内存单元,后面只能跟地址变量。
int a=3;
int *pointerA=&a;
*pointerA=5;//间接访问
a=5;//直接访问
printf(“a=%d”,a); 直接访问
printf(“a=%d”,*pointerA) 间接访问
案例 1
void exchange(int x,int y)
{
int t;
t=x;
x=y;
y=t;
}
void main()
{
int
a=3,b=5;
exchange(a,b);
printf(“a=%d,b=%d”,a,b);
}
案例2
void exchange2(int * x,int * y)
{
int t;
t=*x;
*x=*y;
*y=t;
}
void main()
{
int
a=3,b=5;
exchange2(&a,&b);
printf(“a=%d,b=%d”,a,b);
}
案例3
void exchange3(int * x,int * y)
{
int *t;
t=x;
x=y;
y=t;
}
void main()
{
int
a=3,b=5;
int *pointerA=&a;
exchange3(&a,&b);
printf(“a=%d,b=%d”,a,b); //3,5
printf("&a=%d,&a=%d,&pointerA=%d",&a,pointerA,&pointerA);
}

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!