【讨论】C语言指针传递指针问题
原题:
问题4:下面的程序执行结果是:
main()
{int x[5]={2,4,6,8,10},ppp;
p=x;
pp=&&p;
printf(“%d”,(p++));
printf(“%d\n”,pp);
}
(A)4 4 (B)2 4
(C)2 2 (D)4 6
分析:在此题中p++是后加方式,先输出p的值,p再自加,pp是二级指针,指向一级指针p,执行第一条输出语句前后,
所以本题应选b
所以本题应选b
修改后:
#include "stdio.h"
main()
{
int x[5]={2,4,6,8,10},*p,*pp;
p=x[0];
pp=*p;
printf("%d\n",(p++));
printf("%d\n",pp);
}
网上很多人说这道题是错误的,但是从选择的答案中,可以看到是考:
指针传递指针这理论的。
该怎么修改才能达到“指针传递指针”的目的?
[用户系统信息]Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322)