编程小白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;
 } 

验证结果

 

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