C语言指针的课后题,谢谢!
7个回答
展开全部
pointer_1 指针 得到 变量 a 的地址
*pointer_1 就是 a
&*pointer_1 就是 &a
即 a的地址
&a 是a 的地址
*&a 即 *(a 的地址) 不就和 *pointer_1 一样了 即 a
(*pointer_1)++ 加的是 a
pointer_1 ++ 加的是 pointer_1
*pointer_1 就是 a
&*pointer_1 就是 &a
即 a的地址
&a 是a 的地址
*&a 即 *(a 的地址) 不就和 *pointer_1 一样了 即 a
(*pointer_1)++ 加的是 a
pointer_1 ++ 加的是 pointer_1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先你要明白*和&是什么东东
1.*是指针运算符 在C中为第二优先级,自右至左结合
2.&取地址运算符 优先级和结合性同上
再来解答问题:
假设:int a=3,*pointer_1=&a;//为了下面说明
① pointer_1=&a;//pointer_1这个指针变量中已经存放了a的地址
&*pointer_1//首先进行*pointer_1,代表pointer_1所指向的变量的内容(也就是a中存放的内容)3
//之后又进行&运算,求的是 该内容(整数3)所在的地址不就是&a
②首先取出a的地址,然后*运算,表示该地址所代表的内容:3(a)
总结下:你可以把两者理解为一个互逆运算
则
&*pointer_1就是pointer_1
*&a就是a
③好吧 我想不出来有啥区别(- -杯具)麻烦大神解答下
(pointer_1)++和pointer_1++
都表示先取pointer_1值,然后pointer_1自增.
这两个表达式的值都为pointer_1(自增前)
1.*是指针运算符 在C中为第二优先级,自右至左结合
2.&取地址运算符 优先级和结合性同上
再来解答问题:
假设:int a=3,*pointer_1=&a;//为了下面说明
① pointer_1=&a;//pointer_1这个指针变量中已经存放了a的地址
&*pointer_1//首先进行*pointer_1,代表pointer_1所指向的变量的内容(也就是a中存放的内容)3
//之后又进行&运算,求的是 该内容(整数3)所在的地址不就是&a
②首先取出a的地址,然后*运算,表示该地址所代表的内容:3(a)
总结下:你可以把两者理解为一个互逆运算
则
&*pointer_1就是pointer_1
*&a就是a
③好吧 我想不出来有啥区别(- -杯具)麻烦大神解答下
(pointer_1)++和pointer_1++
都表示先取pointer_1值,然后pointer_1自增.
这两个表达式的值都为pointer_1(自增前)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
①pointer_1 = &a; 那么pointer_1的值为a的首地址,*pointer_1为a的值;*pointer_1 《=》a 而
&*pointer_1 <=> &a;
②*&a中*与&的优先级相同,可以认为是*(&a),它的值就是 a 啦;
③(pointer_1)++表示原来的地址自增一,但pointer的值不变,而pointer_1++表示pointer_1从原来的地址指向了下一个地址pointer_1自增一,虽然两者指向同一位置,但两者的pointer_1值不相同
&*pointer_1 <=> &a;
②*&a中*与&的优先级相同,可以认为是*(&a),它的值就是 a 啦;
③(pointer_1)++表示原来的地址自增一,但pointer的值不变,而pointer_1++表示pointer_1从原来的地址指向了下一个地址pointer_1自增一,虽然两者指向同一位置,但两者的pointer_1值不相同
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一题:p=&a是指取a的地址给p,*p你可以理解为刚才那个地址所存储的数据,同样“&”取地址符下的&*p也应该等价于内存单元的一个地址。
第二题,就是指该内存地址存的数据。
第三题,a与&a的区别是:a指的是数组第一个元素的第一个数据的首地址,而&a是指数组a的首地址。该题同理。当用括号括起来的时候++,与未用扩后括起来的所指向的地址可能不同。
望采纳~
第二题,就是指该内存地址存的数据。
第三题,a与&a的区别是:a指的是数组第一个元素的第一个数据的首地址,而&a是指数组a的首地址。该题同理。当用括号括起来的时候++,与未用扩后括起来的所指向的地址可能不同。
望采纳~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1) 因为pointer_1 地址中保存了a的地址.*pointer_1就取得a的值。&*pointer_1就是取得a的地址。所以&*pointer_1 == &a.他们是相等的哦。
2)&a是取得a的地址。指针就是个地址。&a就想当于一个指针。所以*&a就想当于个一个指针解引用。*&a == a == 10.
3)没有区别。
2)&a是取得a的地址。指针就是个地址。&a就想当于一个指针。所以*&a就想当于个一个指针解引用。*&a == a == 10.
3)没有区别。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |