请问&*p等于*&p?这两个怎么理解
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/15 18:45:50
请问&*p等于*&p?这两个怎么理解
不是说&*这两个是互为逆运算的关系么?如果是这样&*p和*&p的含义就是一样的.但是按照我的理解,前者是取指针p的地址,是一个地址;后者是取出指针变量p的地址,再指向该地址,那么也就是后者表示的是一个变量,是这样的么?我已经晕了,
不是说&*这两个是互为逆运算的关系么?如果是这样&*p和*&p的含义就是一样的.但是按照我的理解,前者是取指针p的地址,是一个地址;后者是取出指针变量p的地址,再指向该地址,那么也就是后者表示的是一个变量,是这样的么?我已经晕了,
&和*在c/c++里用法较多,用在不同的地方,意思不同.
* 用于语句里的指针变量时,表示指针指向的值.例如:printf("%d",*p);
&用于语句里的普通变量时,表示求普通变量的地址.例如:int a; p=&a;
“&*p等于*&p“ -- 是用于指针变量.例如:
声明:int a=1; int *p=&a;
语句:printf("%x %x ",&*p,*&p);
这里 &*p 和 *&p 都等于 p,也就是 p 指向的 变量的地址,这里 正好 都等于 变量 a 的 地址.
------------------
来段程序:
#include
#include
main()
{
int a=2,b=3;
int *p; // 声明了,但没有初始化
printf("%x\n",*p); // 没有初始化就使用,有警告性错误,没关系,继续跑.
printf("a:%p\n",&a); // 打印 a 地址
printf("b:%p\n",&b); // 打印 b 地址
printf("p:%p\n",&*p);
printf("p:%p\n",*&p);
p = &a; // p 指向 a
printf("%x\n",*p); // p 指向的值
printf("a:%p\n",&a);
printf("b:%p\n",&b);
printf("p:%p\n",&*p); // 注意地址 等于 a 的地址
printf("p:%p\n",*&p); // 注意地址 等于 a 的地址
p=&b; // p 指向 b
printf("%x\n",*p);
printf("a:%p\n",&a);
printf("b:%p\n",&b);
printf("p:%p\n",&*p); // 注意地址 等于 b 的地址
printf("p:%p\n",*&p); // 注意地址 等于 b 的地址
}
===
可见 “&*p等于*&p“ 等于 p.我们可以把 &*,*& 理解成 是合在一起的 1 个符号.
都 表示 指针指向的当前 地址.
你硬要分开理解就是:
*p 是指针指向的值,&*p 是指针指向的值的地址,也就是 指针指向的当前 地址.马马虎虎可以理解.
&p 是指针自己的地址,*& 难以理解了.
* 用于语句里的指针变量时,表示指针指向的值.例如:printf("%d",*p);
&用于语句里的普通变量时,表示求普通变量的地址.例如:int a; p=&a;
“&*p等于*&p“ -- 是用于指针变量.例如:
声明:int a=1; int *p=&a;
语句:printf("%x %x ",&*p,*&p);
这里 &*p 和 *&p 都等于 p,也就是 p 指向的 变量的地址,这里 正好 都等于 变量 a 的 地址.
------------------
来段程序:
#include
#include
main()
{
int a=2,b=3;
int *p; // 声明了,但没有初始化
printf("%x\n",*p); // 没有初始化就使用,有警告性错误,没关系,继续跑.
printf("a:%p\n",&a); // 打印 a 地址
printf("b:%p\n",&b); // 打印 b 地址
printf("p:%p\n",&*p);
printf("p:%p\n",*&p);
p = &a; // p 指向 a
printf("%x\n",*p); // p 指向的值
printf("a:%p\n",&a);
printf("b:%p\n",&b);
printf("p:%p\n",&*p); // 注意地址 等于 a 的地址
printf("p:%p\n",*&p); // 注意地址 等于 a 的地址
p=&b; // p 指向 b
printf("%x\n",*p);
printf("a:%p\n",&a);
printf("b:%p\n",&b);
printf("p:%p\n",&*p); // 注意地址 等于 b 的地址
printf("p:%p\n",*&p); // 注意地址 等于 b 的地址
}
===
可见 “&*p等于*&p“ 等于 p.我们可以把 &*,*& 理解成 是合在一起的 1 个符号.
都 表示 指针指向的当前 地址.
你硬要分开理解就是:
*p 是指针指向的值,&*p 是指针指向的值的地址,也就是 指针指向的当前 地址.马马虎虎可以理解.
&p 是指针自己的地址,*& 难以理解了.
请问怎么理解这个正则表达式"\"(?P.+)\""
while(*p&&*p==‘*’) 这句话怎么理解啊
设p、q是两个数,规定p△q=3×p-(p+q)÷2怎么理解,求7△(2△4)
point *set(point *p)请问这要怎么理解哩?注:set是返回指针的函数,point是类
如题*(p + 1) + 1; 这句话怎么理解
P o r k ,p l a t e .请问这两个单词是什么意思?
概率论 分布函数 P{X≤x} X≤x等于怎么理解呀?
电源的空气开关分为1P\2P\3P,请问 P 怎么讲呢?
会计里面 P/F 和 P/A这两个分别代表什么?(P/F ,4,10%)怎么=10000*0.683?
“^p”请问字母P左上角的那个符号怎么输入?
怎么证明当4p+1为质数时等于两个正整数的平方和
请问(P/A,i,n)=(F/A,i,n)*(P/F,i,n)是怎么推倒出来以及怎么理解的呢?