搞不清楚C语言内外循环顺序

Python023

搞不清楚C语言内外循环顺序,第1张

外循环for(i=0i<2i++)

做了两次循环,分别是在i=0和i=1时

内循环for(j=0j<=3j++)

做了两次循环,分别是在j=0、j=1、j=2、j=3时

但是真正主内循环里的x++语句起作用的只有当j=1、j=3时

main()

{int i,j,x=0

for(i=0i<2i++) //做了两次循环,分别是在i=0和i=1时

{x++ //此语句执行了两次

for(j=0j<=3j++) //做了两次循环,分别是在j=0、j=1、j=2、j=3时但是真正主内循环里的x++语句起作用的只有当j=1、j=3时

{if(j%2) continue

x++ //此语句执行了2*2=4次

}

x++////此语句执行了两次

}

printf("x=%d\n",x)}

A.x=4 B.x=8 C.x=6 D.x=12

所以总共自加了8次!

有两种理解.(1)库函数是C语言的内部函数或自带函数,外部函数即程序员自定函数.

(2)凡加写了extern 的函数是外部函数.

第一种理解好懂:

C语言的内部函数指的是C语言自带的函数,无论是动态链接的或静态链接的. 这些函数通过C语言的头文件定义了.

例如, sin(),cos()等数学函数,在math.h中定义了,输入输出函数 printf(),fgetc()在stdio.h中定义了,时间函数表time(),ctime()等在time.h中定义了.还有许多其他内部函数.编程时,只要用#include <库名.h>写在编程头部,程序中就可调用.

自定义函数,就是用户自己写的函数.

第二种凡加写了extern 的函数是外部函数:

自定义函数可以与程序的main()写在同一个文件中,也可以写在另一个文件中,这时你可能还另写自己的头文件或者写extern....,告诉编译器,main中用到的某某函数是"外部函数".

例如,main()在a.c中,自定义函数my_func()在a2.c中

a.c内容:

#include <stdio.h>

extern float my_func(float a)

main()

{

printf("result=%f\n",my_func(2.0))

}

a2.c 内容:

float my_func(float a)

{

return a

}

编译:

cl -c a.c [得到a.obj]

cl -c a2.c [得到a2.obj]

cl a.obj a2.obj [链接成a.exe]

运行:

a.exe

result=2.000000

extern float my_func() 是外部说明,告诉编译,main()里的my_func是外部函数,要通过链接(.obj)得到.

如果把my_func写在a.c里:

#include <stdio.h>

float my_func(float a){

retun a

}

main()

{

printf("result=%f\n",my_func(2.0))

}

my_func() 就不是外部函数.

编译:

cl a.c [得a.exe]

运行:

a.exe

result=2.000000