比特兽是谁的宠物:数组11~~~~~~~~~~~~~

来源:百度文库 编辑:高考问答 时间:2024/04/27 18:24:41
输出结果是
main()
{
static int num[5]={2,4,6,8,10};
int *n,**m;
n=num;
m=&n;
printf ("%d",*(n++));
printf("%d\n",**m) ;
}

答案是2,4

我算出的和答案不一样:(

*n是指针 **m是指向指针的指针
n=num; 将指针N指向num的首地址
m=&n; 将指针M指向N指针
printf ("%d",*(n++));
*(n++)这里的n++的指针下移,但++为后缀,所以printf实际上输出的是*n,即首元素.为2

printf("%d\n",**m) ;
由于上面的后缀++ 所以*n在上一个printf输出后,已经指向了第二个元素4,**m也指向了当前的*n,即第二个元素,为4

注意后缀增1运算++的用途,另外,**m这是指向指针的指针