2道指针的C语言题目,救命阿。。考试了

来源:百度知道 编辑:UC知道 时间:2024/05/26 23:12:44
2.以下程序的输出结果是( )。
main( ){int m=4,n=6,*pm=&m,*pn=&n;*pm=*pm+*pn; printf(“%d”,m);}

3.数组a的首地址为194,则以下程序的输出结果是( )。
main( ){ int a[]={0,1,2,3,4,5,6,7,8,9},*p=a;printf(“%x\n”,p+9);}

2:4+6=10,结果是10
3:选194+2*9=212

把你本来7道题那个贴也顺便结了吧。

问题2:首先你的程序显然有问题的,我修改了如下
void main()
{
int * pm;
int *pn;
int m=4;
int n=6;
pm=&m;
pn=&n;
*pm=*pm+*pn;
printf("%d",m);
}
结果为10,简单解释一下,实质就是m=m+n

问题3:这个好像也不对吧,我修改如下:
int a[]={0,1,2,3,4,5,6,7,8,9};
int *p=a;
printf("%d\n",*(p+9));
结果为9,就是p指向了数组a的首地址,然后加p+9指向了a[9],也就是9