注意:指针变量必须在赋值后调用,否则有可能会导致系统错误。
1.地址和指针
在C语言中数据都会被存储在以字节为单位的存储器中,我们把存储器看做一个建筑物,而存储单元就是大小不一的房间(房间大小取决于数据类型),而地址就相当于房间号。
访问变量时一般都是直接引用变量(例,scanf(“%d”,n)),叫做自接访问;.其实还有一种访问变量的方法——引用变量的地址,叫做间接访问。同俗来讲就是找到存储变量的房间地址,就能找到变量。而指针就是存放地址的空间。
2.指针变量的定义和赋值
定义指针变量的一般格式
类型名 * 指针变量名;
#类型名决定了该指针指向的变量类型,另外其中的 * 叫做指针声明符,也叫简介访问运算符(因为可以用它来访问普通变量)。
例:
int * n ;
声明了一个整形指正变量 ,叫做 n 。
#注意:指针变量的大小是一样的,无论该指针指向谁
指针的赋值
一般格式
p = &i;
#p为指针变量,i 为普通变量。
特殊的赋值:p = 0 以及 p = NULL;这两者是一个意思都表示指针变量 p 中存储的地址为空。
指针的基本运用
#include<stdio.h>
int main (){
int *p,n;
p = &n;
scanf("%d",&n);
printf("%d ",n);
printf("%d",*p);
}
该代码输入 666 的结果为:
由此可见 n 和 *p 在一定条件下是等效的