C程序高手请进~~

来源:百度知道 编辑:UC知道 时间:2024/06/17 08:19:24
有以下程序段:
main()
{
int a=5,*b,**c;
c=&b;b=&a;
}
程序在执行了c=&b;b=&a;语句后,表达式**c的值是______。
A)变量a的地址 B)变量b中的地址
C)变量a中的值 D)变量b的地址

虽然我知道选什么,但是那个解释我却看不太明白
指针变量是用来存放地址的。&:取地址运算符。*:指针运算符。**c为指针变量*c所指向的存储单元,*c为指针指针变量c所指向的存储单元,而c=&b表示c为变量b的地址,b=&a表示b为变量a的地址。表达式**c的值就是变量a中的值。

能不能说的再明白点~~
**c为指针变量*c所指向的存储单元,*c为指针指针变量c所指向的存储单元??
c=&b表示c为变量b的地址,b=&a表示b为变量a的地址,所以c放的就是a的值了??越详细越好
谢谢

好像已经说明的很明白了吧。比如*a指的就是a的存储单元。你把*c看做就是a也就是*(*c)c=&b。就说明c等于b这个变量它的存储地址。同理b=&a也就是b现在它就是a的存储地址。那么你倒着推回来补救是c就是a的值了吗?
你自己画画图就可以看的很清楚了。

一级指针放地址,指向一级指针的为二级指针,所存放的为一个具体值.

这是二级指针的问题 int **c;是定义一个 指向指针的int型指针变量;
而int *c;是定义一个指向 实型int的指针变量 ;两者有区别;