1、
#include<stdio.h>
main()
{int a[5]={2,4,6,8,10},*p,**k;
p=a;k=&p;
printf("%d",*(p++));printf("%d\n",**k);
2、
#include<stdio.h>
#define N 6
main()
{char c[N];int i=0;
for(i=0;i<N;i++)c[i]=getchar();
for(i=0;i<N;i++)putchar(c[i]);
}
當運行以上程序時輸入三行,每行都是在第一列上開始,<CR>代表Enter鍵
a<CR>
b<CR>
cdef<CR>
3、
#include<stdio.h>
main()
{int aa[3][3]={{2},{4},{6}},i,*p=&aa[0][0];
for(i=0;i<2;i++)
{if(i==0)aa[i][i+1]=*p+1;
else++p;
printf("%d',*p);
}
printf("\n")
}
這三道題怎樣做?
第一題答案為:2和4
第二題:a
b
cd
第三題:23
講一下原因,為什麼得這些答案,3Q
第一題:你要理解
printf("%d",*(p++)); // 先用*p ,然後*p再++,其實可以看成printf("%d",*p); *p++ ;
printf("%d\n",**k); //K指向p, p指向a+1 即**k=a[1] =4
第二題:for(i=0;i<N;i++)c[i]=getchar();
//接收6個鍵盤輸入字符,接收的字符分別為a,<CR>,b,<CR>,cd .
// 其中<CR>無任何值輸出,但是具有換行作用 。
第三題:
for(i=0;i<2;i++)
{if(i==0)aa[i][i+1]=*p+1;
else++p;
printf("%d',*p);
}
//主要是分析這裡:i=0時,a[0][1]=2+1=3; 輸出*p 即輸出a[0][0] 當然是2
// i=1時,執行的是 ++p,也就是p=p+1;即p指向了下一位. 所以p=a[0][1]=3,輸出自然為3
//還有什麼不明白 你還可以繼續問