作者tangenttien (点)
看板TransCSI
标题[问题] 103台联大 计概
时间Fri Jul 10 20:02:24 2015
Whic is correct?
int *p1;
int *p2;
p1= new int; p2= new int;
*p1=0; p2=0; p2=p1;
*p2=1; *p1=3; p1=0;
(A)*p1 is 0 and *p2 is 1
(B)*p1 is 3 and *p2 is 1
(C)*p1 is unknown and *p2 is 3
(D)*p1 is 0 and *p2 is unknown
(E)None of the above
Ans C
想询问这类题目要怎麽作答
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.250.48.55
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/TransCSI/M.1436529746.A.744.html
1F:推 ccpz: 主要是注意 p1, p2 宣告为指标, 对他用 * 运算子代表 07/10 21:42
2F:推 ccpz: 读取他储存的记忆体位置的数字 07/10 21:43
3F:推 ccpz: 例如 p=2, 代表p存2号位置, *p 就是读取 2号位置的值 07/10 21:43
4F:推 ccpz: 所以最後两行: p1位置的值为0, p2位址为0, p2位置是p1 07/10 21:45
5F:推 ccpz: p2, p1 位址的值为1, p1, p2 位址的值为3, p1位址为0 07/10 21:46
6F:推 ccpz: 因为没有对位址0设定值, 所以*p1未知, *p2是3 07/10 21:46
7F:推 ccpz: 也可以画格子, 里面写数字模拟一下 07/10 21:47
8F:→ tangenttien: 大大说*p1=0 是指读取0里面的值 那为什麽经过p1=p2 07/10 22:35
9F:→ tangenttien: 後p1和p2会存在同个位置但 *P不是读值吗?怎麽变成 07/10 22:37
10F:→ tangenttien: 直接得到值 07/10 22:37
11F:推 ccpz: 例如说p1=2,代表p1指到第二格 07/11 12:40
12F:推 ccpz: *p1=4,代表第二格内的值指定为4 07/11 12:41
13F:推 ccpz: p1=p2没有星号,所以是p2位置指定给p1,两者就是指到 07/11 12:42
14F:推 ccpz: P一格 07/11 12:42
15F:推 ccpz: 同一格 07/11 12:43