|
发表于 2021-12-22 12:14:19
|
显示全部楼层
本帖最后由 人造人 于 2021-12-22 12:17 编辑
问题在于第2个for循环
- //for(int i = 0; i < 5;){
- for(i = 0; i < 5;){
- B[++i] = i*i;
- }
复制代码
这个for循环最后一次执行的是
对于vc6来说
- #include <stdio.h>
- int main(){
- int A[5] = {0}, B[5] = {0};
- int i;
- //for(int i = 0; i < 5;){
- for(i = 0; i < 5;){
- A[i++] = i*i;
- }
-
- //for(int i = 0; i < 5;){
- for(i = 0; i < 5;){
- B[++i] = i*i;
- }
-
-
- //for(int i = 0; i < 5; i++){
- for(i = 0; i < 5; i++){
- printf("%d ", A[i]);
- }
-
- printf("\n");
-
- //for(int i = 0; i < 5; i++){
- for(i = 0; i < 5; i++){
- printf("%d ", B[i]);
- }
-
- puts("");
- &B[5] == &A[0] ? puts("true") : puts("false");
- return 0;
- }
复制代码
- 16 1 4 9 16
- 0 0 1 4 9
- true
- Press any key to continue
复制代码
- $ gcc -g -Wall -o main main.c
- main.c: In function ‘main’:
- main.c:8:20: warning: operation on ‘i’ may be undefined [-Wsequence-point]
- 8 | A[i++] = i*i;
- | ~^~
- main.c:8:20: warning: operation on ‘i’ may be undefined [-Wsequence-point]
- main.c:13:19: warning: operation on ‘i’ may be undefined [-Wsequence-point]
- 13 | B[++i] = i*i;
- | ^~~
- main.c:13:19: warning: operation on ‘i’ may be undefined [-Wsequence-point]
- $ ./main
- 1 4 9 16 25
- 0 1 4 9 16
- false
- $
复制代码
tab和空格不能混用,混用tab和空格代码格式就乱了
|
|