#include <stdio.h>
#include <math.h>
main()
{
static int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int *p;
/*
for (p=a[0];p<a[0]+12;p++)
{if ((p-a[0])%4==0) printf("\n");
printf("%4d",*p);
}
*/
for (p=a;p<a+12;p++)
{if ((p-a)%4==0) printf("\n");
printf("%4d",*p);
}
}
程序如上,我把源程序中的注释掉,自己的写在下面。
源程序运行结果正确,我自己的运行有警告,如下:
警告 e:\c-language\c-code\code04.c 16:指针变换后指向其它类型在main汉书中
对应英文如下:
Warning e:\c-language\c-code\code04.c 16:Suspicious pointer conversion in function main
正确的运行结果如下:
1 3 5 7
9 11 13 15
17 19 21 23
错误的运行结果如下:
1 3 5 7
9 11 13 15
17 19 21 23
1013349 100 0
4864 51412842054
2056539648695887
4357-254 -1 -1
-1 -1 -1 -1
1285 -1 -1 -1
-1 -1 -1 -1
-1-241 5474095
-1 -1-237 767