读书人

为啥这样遍历数组不可以

发布时间: 2013-10-11 14:52:39 作者: rapoo

为什么这样遍历数组不可以
如果这样遍历数组,是可以的:
#include <stdio.h>

void main() {
int a[2][3] = {
{1,2,3},
{4,5,6}
};
int *p = a[0];
for(; p < a[0] + 6; p++) {
printf("%d\n", *p);
}
}
但是改成这样,就会出现诡异的问题:
#include <stdio.h>

void main() {
int a[2][3] = {
{1,2,3},
{4,5,6}
};
int *p = a[0];
for(; p < p + 6; p++) {
printf("%d\n", *p);
}
}
为啥捏,p和a[0]不是一样的么
请问这是为什么?
[解决办法]


void main() {
int a[2][3] = {
{1,2,3},
{4,5,6}
};
int *p = a[0];
for(; p < p + 6; p++) {
printf("%d\n", *p);
}

for是死循环,p<p+6 p++

读书人网 >C++

热点推荐