c语言中数组与函数调用 c语言中数组与函数调用的关系( 三 )


虽然在一些编译器中,void main可以通过编译(如vc6),但并非所有编译器都支持void main , 因为标准中从来没有定义过void main 。
g++3.2中如果main函数的返回值不是int类型,就根本通不过编译 。而gcc3.2则会发出警告 。所以,如果你想你的程序拥有很好的可移植性,请一定要用int main 。
4、返回值的作用
main函数的返回值用于说明程序的退出状态 。如果返回0,则代表程序正常退出,否则代表程序异常退出 。下面我们在winxp环境下做一个小实验 。首先编译下面的程序:
int main(void)
{
return 0;
}
然后打开附件里的“命令提示符”,在命令行里运行刚才编译好的可执行文件,然后输入“echo%ERRORLEVEL%”,回车,就可以看到程序的返回值为0 。
假设刚才编译好的文件是a.exe,如果输入“adir”,则会列出当前目录下的文件夹和文件 。但是如果改成“return-1”,或者别的非0值,重新编译后输入“adir”,则dir不会执行 。
因为的含义是:如果前面的程序正常退出,则继续执行后面的程序,否则不执行 。也就是说,利用程序的返回值,我们可以控制要不要执行下一个程序 。这就是int main的好处 。
如果你有兴趣,也可以把main函数的返回值类型改成非int类型(如float),重新编译后执行“adir”,看看会出现什么情况,想想为什么会出现那样的情况 。顺便提一下,如果输入a||dir的话,则表示如果a异常退出,则执行dir 。
参考资料:
百度百科——return(C语言语句)
c语言 数组、函数调用问题 。这问题说明你对指针的运用还是不熟练的,既然是数组 , 作为函数参数传递的是数组首地址.
#include stdio.h
#include stdlib.h
void func1(int *array, int size) {
int i,temp;
for (i=0;isize;i++) {
scanf("%d",temp);//利用scanf输入赋值
array[i]=temp;
}
}
//数组array_b根据数组array_a的元素乘以项数获得元素值
void func2(int *array_a,int *array_b, int size) {
int i;
for (i=0;isize;i++)
array_b[i]=array_a[i] * i;
}
//输出数组元素
void print(int *array, int size) {
int i;
for (i=0;isize;i++)
printf("%d ",array[i]);
printf("\n");
}
int main(void) {
int size;//数组大小
int i;
int *array_a, *array_b;//声明数组array_a,array_b
scanf("%d", size);
array_a=malloc(sizeof(int) * size);
array_b=malloc(sizeof(int) * size);
func1(array_a, size);
func2(array_a, array_b, size);
print(array_a,size);
print(array_b,size);
return 0;
}
C语言 数组 调用函数对于有数组参数的函数,编译程序要为其开辟相应的内存空间,而程序中两个函数
都有数组参数a[n][m],由于n,m是变量,编译程序并不知道n,m的具体值,所以不能
通过编译 。
修改:
1.在#include下面添加以下伪指令:
#define n 5
#define m 5
2.将函数的参数形式改为:
int sum(int a[n][m]);
void pl(int a[n][m]);
并按此修改程序文件中所有关于这两个函数的申明和调用即可
关于c语言中数组作为函数参数的函数之间调用问题1、新建一个数组作为参数项目,如图所示:
2、添加一个array.c文件,如图所示:
3、包含stdio.h和stdlib.h头文件,如图所示:
4、输入main函数主体及返回值,如图所示:
5、定义一个数组arr,如图所示:
6、定义一个function函数,如图所示:
7、将数组作为参数传递给function函数,如图所示:
8、运行程序,输出结果,如图所示:
关于c语言中数组与函数调用和c语言中数组与函数调用的关系的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读