編程小白C語言題目練習7

題目要求

執行以下程序段後,m的值爲(       )
int  a[2][3]={  {1,2,3},{4,5,6}  };
int  m,*p;
p=&a[0][0];
m=(*p)*(*(p+2))*(*(p+4));

思路分析

剛看到這個題目,完了,這是三重指針啊,好幾個*號啊,這怎麼辦,選擇題還可以猜,填空題只能蒙一個

但是仔細一想,好像可以做,中間的*好像是 乘號 的意思,我的思路是把二維數組轉化爲一維數組

  0 1 2
0 1 2 3
1 4 5 6

轉化爲一維數組

a 0 1 2 3 4 5
元素 1 2 3 4 5 6

*p=a[0]=1

*(p+2)=a[0+2]=3

*(p+4)=a[0+4]=5

m=1*3*5=15

 

代碼演示 

#include<stdio.h>
int main()
{
	int  a[2][3]={  {1,2,3},{4,5,6}  };
	int  m,*p;
	p=&a[0][0];
	m=(*p)*(*(p+2))*(*(p+4));
	printf("*p=%d\n",*p);
	printf("*(p+2)=%d\n",*(p+2)); 
	printf("*(p+4)=%d\n",*(p+4));  
	printf("m=%d\n",m);
	return 0;
 } 

驗證結果

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章