c语言指针二级指针和二级地址的解释和平常地址与指针的区别
1个回答
展开全部
解释如下:
指针的本质其实就是地址,我们常说的指针哪,一般都是指的指针变量,就是存放地址的变量。
二级指针,就是指向指针的指针,举例说明:
char ch='A'; //定义了一个char型变量ch,并初始化
char *p; //定义了一个char型指针变量p
char **pp; //定义了一个char型二级指针变量pp
p=&ch; //把变量ch的地址赋值给p,那么p就指向了变量ch了。
pp=&p; //把指针变量p的地址赋值给pp,那么pp就指向了指针p了。
因为指针变量,它有自己的内存空间,所有的指针类型的变量都是4个字节的大小,即存放的
是一个32位的地址值。
二级指针和二级地址的本质含义是一样的,指针一般是认为是指针变量的,其值是可变的;而地址,我们
通常认为它是一个常量值,是不变的。
平常地址与指针,一样的理解,本质是一样的,都是地址。我们说地址,比如说我定义了一个变量a,
那么这个变量a的地址&a,在编译阶段它的值就已经确定了,是不变的了。而对于指针变量p,它可以
存放变量a的地址&a,也可以存放变量b的地址&b,它的值是可变的,所以我们就把这样的变量就
就做指针。
总而言之,指针和地址,本质是一样的,只是两种不同的叫法而已。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询