一个C语言问题
若有定义inti,j,*pi=&i;则与i==j的等价的比较表达式是?A*pi==*&jBi==&j;Ci==*piDi==**pi麻烦,解释一下,Manythanks...
若有定义 int i,j,*pi=&i;则与i==j的等价的比较表达式是?
A *pi==*&j
B i==&j;
C i==*pi
D i==**pi
麻烦,解释一下,Many thanks 展开
A *pi==*&j
B i==&j;
C i==*pi
D i==**pi
麻烦,解释一下,Many thanks 展开
展开全部
选a.
首先了解*
在定义时,表示:该变量是指针.比如 int *pi;这里pi是一个指针,指向int类型的变量.
在一般语句中,比如*pi,就是这个指针所指向的变量.
假设,int a,*pi=&a;那么pi指向a,当要用指针修改a的值的时候,就是用*pi来修改,比如*pi=3;此时a就修改为3.
其次,&取地址符,顾名思义,就是取地址.int a,*pi=&a;就是把a的地址返还给这个表达式.
那么来分析A,*pi自然代表i,那*&j呢?分析下:首先*和&的结合性从右向左,所以先做&j,即返回了一个地址,然后又做了一个*,又把这个地址变回原来的变量了.
你可以类似的看pi,*pi代表的是i(因为pi中存放的是a的地址,也就是&i),那你自然可以写成 *&i==*&j.意思和i==j一样.
首先了解*
在定义时,表示:该变量是指针.比如 int *pi;这里pi是一个指针,指向int类型的变量.
在一般语句中,比如*pi,就是这个指针所指向的变量.
假设,int a,*pi=&a;那么pi指向a,当要用指针修改a的值的时候,就是用*pi来修改,比如*pi=3;此时a就修改为3.
其次,&取地址符,顾名思义,就是取地址.int a,*pi=&a;就是把a的地址返还给这个表达式.
那么来分析A,*pi自然代表i,那*&j呢?分析下:首先*和&的结合性从右向左,所以先做&j,即返回了一个地址,然后又做了一个*,又把这个地址变回原来的变量了.
你可以类似的看pi,*pi代表的是i(因为pi中存放的是a的地址,也就是&i),那你自然可以写成 *&i==*&j.意思和i==j一样.
展开全部
选择 A 答案。
说实话,我当时面对这样的问题也是措手无策呀!不过现在明白了一点。
说实话,我当时面对这样的问题也是措手无策呀!不过现在明白了一点。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a
*p=i
&j是j的地址*&j就是j变量的值
*p=i
&j是j的地址*&j就是j变量的值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
选A
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |