指针小问题
#include<stdio.h>
int main()
{
int a = { 1, 2, 3, 4, 5, 6, 6, 5, 4, 3, 2, 1 };
int *p;
for ( p = &a; p <= &a; p++ )
{
if ((p - &a) % 4 == 0) //换行 3行4列
printf("\n");
printf("%d\t", *p);
}
printf("\n");
return 0;
}
#include<stdio.h>
int main()
{
int a = { 1, 2, 3, 4, 5, 6, 6, 5, 4, 3, 2, 1 };
int *p;
for ( p = &a; p < &a; p++ )
{
if ((p - &a) % 4 == 0) //换行 3行4列
printf("\n");
printf("%d\t", *p);
}
printf("\n");
return 0;
}
这两个for循环输出竟然不一样
for ( p = &a; p <= &a; p++ )
for ( p = &a; p < &a; p++ )
二维数组初始化只需要一个大括号吗?
你的&a没有超出数组范围吗? 肯定不一样啊,第一个是对的,数组的行列下标都是从0开始,你for里面写个a就是超数组范围了,读到的不知道是什么垃圾值。
第一段输出12个,第二段输出16个。
页:
[1]