C语言:式子&*a和&(*a)等于多少?要解释或步骤。

如题所述

语句中 *a 表示指针指向的值。
语句中 a 表示指针指向的地址。
语句中 &x 表示求变量x的地址。
这里的 * 和 & 运算符优先机相同。
&* 运算 或 *& 运算 互相抵消。
所以 语句中 &*a 就等于 a,
&(*a) 也等于 a.

例如:
int x=2; // 声明,变量x的值初始化为2
int *a=&x; // 声明 a 是指针,初始化指向 变量 x
printf("%x %x %p %p", &*a,&(*a),a,&x); // 输出 a 指向的地址 和 输出变量 x 的地址

输出的地址相同,例如等于:
18ff40 18ff40 0018FF40 0018FF40追问

谢谢你的解答,Thang you。。。^_^^_^

追答

知道更新太慢,我答题时尚“无人”回答,答完了,提问者采纳却出现了。

追问

嗯,放宽心点吧

追答

这种事常发生。-- 感觉浪费了时间。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-06-22
都等于a
因为(1)*和&是互逆的运算 (2)*和&是单目运算符,运算自右向左,所以&*a就是&(*a)追问

本回答被提问者采纳
相似回答