指针基础语句

有人说C语言的精华是指针,可见指针的作用以及难度系数,那么今天我们就来看一下:1.指针的特殊性;2.指针基础语句的含义。

  1. 指针的特殊性:

[1]指针(也称地址)也是一个变量类型,和int,char一样,但它有两个特殊的符号: &和“ * ".
&a表示获取a的地址,称为取址符;
我们在定义变量时有着一定的规则:

char a = 'x';.//字符变量存放字符
int b = 10;//整形变量存放整形值
double = 23.4;//浮点变量存放浮点数

所以有什莫变量存放什莫类型的值。&a表示整形地址值,需要整形地址变量来存储它,地址即为指针,所以有

int * p = &a;  // p 保存了a的地址

p和a建立了联系。那我们怎么通过p得到或修改a地址里的值呢,这就有“ * ”的出现.
“ * ”被称为解引用,即间接访问指针所指向地址里的值。

a=50;
*p=50//表示访问p所指向地址的内容,p里面的地址是a的,a的值是50,所以*p=50

[2 ]" * "的用法:
在3*4中为乘法符号
int * p=&a;表示p为整形地址变量,*表示数据类型
*p=10;表示间接访问符,解引用。

[3 ] 指针的赋值:
指针在赋值时一定严格相等,即同一类型才可以赋值
e.g:
short b = 10;
short *p = &b;正确的
char a = ‘a’;
int *p1 = &a;
这是错误的,因为a为char类型,而p1为整形,所以错误
2. 指针基础语句的含义:

  • [1 ] 一级指针:
int a = 10;
int *p = &a;//表示p和a建立了联系,存储着a的地址
*p = 10;// * 表示解引用p,即到达p所指向的变量的值,所以*p=a=10;

如图所示
在这里插入图片描述

  • [2]二级指针
    p可以作为整形指针变量可以指向别人的地址,那么它的地址可不可以也用一个变量来保存呢?要想保存整形指针值得地址,就要用整形指针地址变量来保存,即**k,我们称它为二级指针。
int **k=&p;  //用二级指针来存储p得地址
*k=&a;       //对二级指针进行一次解引用,到达p,p里放的是a的地址,所以*k=&a
**k=1000;    //对k进行二次解引用,先到p,在解引用p,p保存的是a的地址,所以a的值被修改了,为a=1000;

如图所示:
在这里插入图片描述
希望大家牢记指针的性质和用法,下次见!

猜你喜欢

转载自blog.csdn.net/qq_43411555/article/details/83387466