下述程序的输出结果是?

来源:百度知道 编辑:UC知道 时间:2024/09/28 06:27:56
#inculde<stdio.h>
void main()
{ int a[5]=[1,2,3,4,5};
int*p=a,**q=&p;
printf("%d",*(p++));
printf("%d".**q);}

分析:
*(p++):这个表达式先和++结合,但是由于++不会改变此次运行的值,所以他输出的值还是等于*P,(但是输入完后指针p就要执行+1这个操作了),所以printf("%d",*(p++))这个表达输出的结果是*a,也就是1;
对于**q=&p,由于这个表达式在printf("%d",*(p++));操作前面,所以综合int*p=a,**q=&p;可知,**q=&a=&a[0](指向数组的指针和数组首个元素的指针所指的位置是相等的),所以**q=1,所以 printf("%d".**q);}结果也是1.

综上:输入出的结果是 1 1