要求用指针分别依次和选择输出二维数组元素。
这个是依次输出的代码
#include<stdio.h>
int main()
{
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int *p; /*ok 第一次在这里犯了错误 因为第一次让*p=a[0][0],最后发现这里a[0][0]不是地址
而表示的是a[0][0]的值 也不可以*p=a; 因为这里的a 即数组名 指代的是一列的一维数组
而在一维数组中,数组名则指代的是该数组首元素的地址 不能混淆使用*/
for(p=a[0];p<a[0]+12;p++)
{
if((p-a[0])%4==0) /*这里表示每四个元素输出一个换行 控制格式*/
printf("\n");
printf("%4d ",*p); /*在这里复习一下输出格式的控制;
%d,s,c.....表示输出的转义字符中间夹正数,表示按规定方向移动该数字个单位;
夹小数表示取小数点后数字个有效数字 若夹负数,表示反向
规定正方向为从左到右 反方向从右到左*/
}
}
上面的代码中 我觉得难点就是理解这里二维数组的指针与一维数组涵义,使用方面的不同。
<