1. 指针就是地址。
指针变量里面存放的是所指变量的地址。
举个例子说明一下:
#include <stdio.h>
void main()
{
int a=7;
int *p=&a;
printf("a的地址和内容是:%d,%d\n",&a,a); //p代表所指变量的地址,所以在输入的时候可以sacnf("%d",p)
printf("通过p获取的a的地址和内容是:%d,%d\n",p,*p); //这里p是取p指针变量里面的内容即所指变量的地址,而不是所指变量的内容。
printf("p指针变量本身的的地址是:%d\n",&p); //指针变量本身的地址。
}
结果:
一般来说,指针变量代表所指变量的地址,而不是所指变量的内容,也不是指针本身的地址。所以说,指针变量也就是指针(地址,指针就是地址)
指针变量p==所指变量a的地址&a, 二者是等价。所以在输入的时候可以scanf("%d",p)代替scanf("%d",&a)
若要代表所指内容,就要在其前面加*,如*p==a
总之:
int * p,a;
p=&a;
printf("%d",p); //p代表a的地址
printf("%d",&p); //取指针变量p本身的地址
指针 = 地址 = 指针变量
在windows编程时,传递指针类型的参数时,就可以传递一个地址,或者一个指针变量