C语言字符数组问题 #include<stdio.h> #define N 5 int main(

C语言字符数组问题
#include<stdio.h> #define N 5 int main() { int i,j; char a[N][N]; for(i=0;i<N;i++) for(j=0;j<N;j++) a[i][j]='*'; for(i=0;i<N;i++) {for(j=0;j<i;j++) printf(" "); for(j=0;j<N;j++) printf("%c",a[i][j]); printf("\n"); } return 0; }

谁能告诉我,第三个到第五个for是怎么运行得。最后输出是一个图案来得
最新回答
ぐ紷紷猪﹏☆

2024-07-03 10:31:58

因为str1定义的空间太小,输入的目的
字符串
已经造成了数组的越界:存储到str1中数据过长,已改写数组存储空间的后续空间所存储的数据。虽然你的程序很简单,使用的内存很小,有时系统未报错,但越界操作很可能会引起程序、系统崩溃,建议str1定义一个较大的空间,避免此类危险。
晴空如洗

2024-07-03 02:11:25

首先你要看懂fun()函数的,*x=*(x+i);就是把x之后的第i个数的值赋给x的。
执行fun(a,2);后是把第三个元素的值赋给第一个元素的,所以a[0]=a[3]=3,输出的时候只输出了前四个数,也就是3
2
3
4.不懂可以追问,望采纳!