为什么这样遍历数组不可以
如果这样遍历数组,是可以的:
#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);
}