一.定义指针变量
1.1指针变量的定义
与常规变量的定义类似,但要在变量名称前加上星号*,请使用以下格式:
datatype *name 或者
datatype *name=value;
*表示这是指针变量,而datatype表示指针变量指向的数据类型。
例如,int *p1;
1.2分配指针变量
p1是指向int型数据的指针变量,关于p1指向哪个数据,应该由对其赋予的值来决定。 另外,例如:
int a=100;
int *p_a=a;
如果在定义指针变量p_a的同时进行初始化,并赋予变量a的地址,则p_a将指向a。 值得注意的是,p_a所需的地址必须在a之前加上地址符号。 不那样做的话就错了。
1.3更改指针变量
和普通变量一样,指针变量也可以多次写入,可以随时随时改变指针变量的值。
*是表示一个变量为指针变量的特殊符号,在定义p1、p2时必须携带。 另一方面,给p1,p2赋值时,因为已经知道是指针变量,所以不需要再带,以后可以和普通的变量一样使用指针变量。 也就是说,
定义指针变量时必须具有*,而为指针变量赋值时不能具有*。
//定义普通变量
float a=99.5,b=10.6;
char c='@ ',d='# ';
//定义指针变量
float *p1=a;
char *p2=c;
//更改指针变量的值
p1=b;
p2=d;
如果将变量a、b、c、d地址分别设为0X1000、0X1004、0X2000、0X2004,
以下图像很好地反映了p1、p2导向的变化。
需要强调的是,p1、p2的类型分别为float*和char*,
读者需要注意,因为这不是float和char,而是完全不同的数据类型。
指针变量也可以按顺序定义。 示例:
int *a、*b、*c; //a、b和c的类型均为int*
请注意,每个变量前面都有*。 如果写如下,
那么,只有a是指针变量,b、c都是类型为int的普通变量:
int *a、b、c;
二.使用指针变量
2.1通过指针变量获取数据
指针变量存储数据的地址,可以从指针变量获取该地址上的数据。 形式如下。
*指针;
此处的*称为指针运算符,用于获取某个地址的数据。 请看以下示例。
#包含
int main ()。
int a=15;
int *p=a;
printf('%d,%dn ),a,*p ); //哪种方式都可以输出a的值
返回0;
}
执行结果:
十五、十五
标签:变量、int、c语言、地址、pa、精华、数据、指针
资料来源: https://blog.csdn.net/QQ _ 40761920/article/details/116262535