C语言-1.初识指针与指针变量

内存=“酒店”
内存给内存中的字节分配的空间=地址=“房间号”
地址中存放的数据=变量/常量=“旅客”
可以说地址指向变量单元;例如1110房间住着小明,则1110为地址;小明为存放在该地址的变量;1110指向小明;因此将地址形象化的称为指针;
此处一定要搞清楚存储单元的地址和存储单元的内容两个概念,编译器在编译后,对变量的存取都是通过变量的地址进行的,例如scanf(“%d,&i”)是把键盘输入的值送到2000为开始的存储单元中,
例如接着a=i;的语句,则是通过访问i所在的地址,将地址中的值送到a所在的地址中,这种叫直接访问
还有一种访问方式叫间接访问,即将变量i的地址存放在另一变量中,然后通过该变量来找到变量i的地址,从而对i进行存取操作;
例如int *p;
p = &i;
此处就是将i的地址存放到p中;p此时=2000,即变量i的所占内存单元的起始地址;
这就是指针的含义;
那么现在就有两种方法将数值3赋值给变量i;
1.直接访问:i=3;
2.间接访问:int *p;
*p = 3;
p=&i;
区分指针和指针变量:
1.一个变量的地址就是该变量的指针;例如地址2000是变量i的指针;
2.专门用来存放另一变量的地址(指针),则称他为指针变量;
粗俗易懂的讲:指针是系统确定的,系统编译程序后,分配给变量的地址是多少,变量的地址(指针就是多少)
而指针变量的名字是用户自己在程序中定义的,它可以是p,可以是p1;专门用来存放变量的地址;他是一个变量,也是需要定义类型的;
那么,接下来我们可以分析一个例子,学习指针变量的定义和使用;

#include<stdio.h>
int  main()
{
    
    
	int a = 100, b = 10;
	int *p1, *p2;//定义指针变量;不指向任何变量;
	p1 = &a;//p1指向a;p2指向b;
	p2 = &b;
	printf("a = %d,b=%d\n", a, b);
	printf("*p1 =%d,*p2 =%d",a, b);
	return 0;
}

编译后结果如下:在这里插入图片描述程序4行,定义指针变量;p1,p2就是指针变量的名称;
程序56行,指针变量的使用

猜你喜欢

转载自blog.csdn.net/jinanhezhuang/article/details/119000633