用指针输出二维数组
#include<stdio.h>
int main()
{
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int* p;
for(p=a[0];p<12+a[0];p++){
if((p-a[0])%4==0) printf("\n");
printf("%4d",*p);
}
printf("\n");
return 0;
}以上程序的运行结果为:
1 3 5 7
9 11 13 15
17 19 21 23
程序没有错。
我的疑问是:
1、假设a[0]地址为236,指针p的初值则为236,因为每个int数据占两个内存空间,则a[1]地址为238。p==236时,输出*p(a[0])后,p自增一(p++),到下一个循环时,指针p的值应该为237,与a[1]的地址值238不等,那为何地址不等输出的结果是一样的,正确的?
2、对于输出换行“if((p-a[0])%4==0) printf("\n");”,每个int数据占两个内存空间,则每输出两个数据(如:a[0]和a[1])后,就应该进行一次换行,而不是输出4个数据换一次行,因为p=240,,p-a[0]=240-236=4,,4%4=0,是否?
求大神指点!!
...全文
相关推荐
使用C语言实现,输出二维数组有关值 在屏幕上输出二维数组的有关值,以及指向二维数组的指针变量的应用
在屏幕上输出二维数组的有关值,以及指向二维数组的指针变量的应用。编程语言性能优化实战技巧
基于数组指针实现二维数组中最小值所在行的查找与显示程序
用于比较指针数组和数组指针实现算法的差异,利用函数返回指针实现。 可作为研究C语言指针使用的范例程序。 有源代码和实现结果图。
用指针实现二维数组的转置
vc+ 用指针实现二维数组的转置,通过指针实现对二维数组的转置操作
二维数组作为函数形参的两种方法
最简单的二维数组求和程序,用函数来实现,代码简单易懂,希望对您有帮助
C++中指针指向二维数组实例详解
主要介绍了C++中指针指向二维数组实例详解的相关资料,需要的朋友可以参考下


