<span style= "FONT-SIZE:18PX;" > #include <stdio.h>void main () {int I=0;int a[5];for (i = 0; I <= 5; i++) {A[i] =-i;printf ("a[%d] =%d\n", I, a [i]);}} </span>
Analyze the above code, what is the result of execution? Can you compile the past? Is there a result? What was the result?
After compiling the run, it is found that the program is ready to run.
To analyze this program, fix the program:
<span style= "FONT-SIZE:18PX;" >void Main () {int I=0;int a[5]={0,0,0,0,0};for (i = 0; I <= 5; i++) {A[i] =-i;printf ("a[%d] =%d\n", I, a[i]); if (i== 4) {printf ("%p\n", &i);p rintf ("%p\n", &a[0]);p rintf ("%p\n", &a[1]);p rintf ("%p\n", &a[2]);p rintf ("%p \ n ", &a[3]);p rintf ("%p\n ", &a[4]); while (1);}} </span>
After running:
Using the above running results, draw the memory graph as follows:
Why use the while (1) dead loop? Because the program actually becomes a dead loop, it uses a dead loop to observe the results.
About a dead loop after an array is out of bounds