内存区的每一个字节都有一个编号,这就是“地址”
如果在程序中定义了一个变量,在对程序进行编译或运算时,系统就会给这个变量分配内存单元,并确定它的内存地址(编号)
指针的实质就是内存“地址”。指针就是地址,地址就是指针。
指针是内存单元的编号,指针变量就是存放地址的变量。
#include<stdio.h>
int main(void)
{
int a=10;
int* p; //定义一个指针变量p
p=&a; //将a的地址赋值于p
printf("%p\n",&a); //打印a的地址
printf("%p\n",p); //直接打印指针变量p 实际上打印出a的地址
printf("%d\n",a); //打印a的值
printf("%d\n,*p); //*p 对指针变量p取值,通过访问地址,找到地址对应的值
return 0;
}
通常我们叙述时会把
指针变量简称为指针,实际他们含义并不一样。
//指针间接赋值
#include<stdio.h>
int main(void)
{
int a=10;
int* p=&a; //int* 是一种数据类型
*p=100; //* 运算符
printf("%d\n",a); //a打印出来 值为100
return 0;
}