C语言中自定义的函数中有数组 , 应该如何运用该函数方法
有2
将该数组定义为全局变量,即:
int
g_arr;
void
fun()
{...}
void
main()
{...}
2.将该数组作为函数参数传递到自定义函数里,即:
void
fun(int
arr[])
{...}
void
main()
{
int
arr[10];
fun(arr);
}
C语言自定义函数怎么传参,是一次性把数组的数据全部传入吗?1、因为数组在内存中是一块连续的内存,只要将该数组的首地址传进去,当然就可以访问整个数组了 。值得注意的是,由于只传了首地址,函数不知道数组的维数,所以还得把数组的维数传进去 , 那就可以完全操作该数组了 。\x0d\x0a\x0d\x0a2、例:有一个函数声明:void fun( int aa[],int size );或者void fun( int *pa,int size );\x0d\x0a以上两种声明都一样 。\x0d\x0a调用上诉函数时:假设有 int ab[10];\x0d\x0afun( ab,10 )就可以了 。
C语言自定义函数怎么传参,一次性把数组的数据全部传入?数组参数属于指针参数.
指针参数即时传址参数(或叫引用参数), 如果想在函数中修改参数的值, 这是唯一的途径.
如果把数组当作参数, 不管你愿意与否, 它就是指针, 指向第一个值的指针.
1. 数组参数就是指向第一个元素的指针: #include stdio.h
【c语言自定义函数参数数组 c语言自定义函数的用法】void getArr(int p[], int si);
int main(void)
{
int ns[] = {1,2,3,4,5};
getArr(ns, sizeof(ns)/sizeof(ns[0]));
getchar();
return 0;
}
void getArr(int p[], int si) {
int i;
for (i = 0; isi; i) {
printf("%d\n", p[i]);
}
}
2. 干脆直接声明为指针: #include stdio.h
void getArr(int *p, int si);
int main(void)
{
int ns[] = {1,2,3,4,5};
getArr(ns, sizeof(ns)/sizeof(ns[0]));
getchar();
return 0;
}
void getArr(int *p, int si) {
int i;
for (i = 0; isi; i) {
printf("%d\n", p[i]);
}
}
3. 即使你在形参中指定维数也不起作用: #include stdio.h
void getArr(int p[2], int si);
int main(void)
{
int ns[] = {1,2,3,4,5};
getArr(ns, sizeof(ns)/sizeof(ns[0]));
getchar();
return 0;
}
void getArr(int p[2], int si) {
int i;
for (i = 0; isi; i) {
printf("%d\n", p[i]);
}
}
4. 既然是指针, 其值就有被修改的可能: #include stdio.h
void getArr(int p[], int si);
int main(void)
{
int ns[] = {1,2,3,4,5};
size_t i;
getArr(ns, sizeof(ns)/sizeof(ns[0]));
for (i = 0; isizeof(ns)/sizeof(ns[0]); i) {
printf("%d\n", *(ns i));
}
getchar();
return 0;
}
void getArr(int p[], int si) {
int i;
for (i = 0; isi; i) {
p[i];
}
}
5. 如果是字符数组, 它自己能判断数组尾界: #include stdio.h
void getArr(char p[]);
int main(void)
{
char ns[] = "ABCDEFG";
getArr(ns);
getchar();
return 0;
}
void getArr(char p[]) {
int i;
for (i = 0; p[i]; i) {
printf("%c: %d\n", p[i], p[i]);
}
}
关于c语言自定义函数参数数组和c语言自定义函数的用法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。
推荐阅读
- 大连华信SAP是外包吗,大连华信 sap
- 硬盘只有300g怎么设置,硬盘只有238g
- 直播伴侣添加字幕,直播伴侣字幕怎么设置
- oracle如何like oracle如何连接数据库
- 棋牌游戏漏洞包赢的简单介绍
- 怎么查电脑正版授权,如何查询电脑是否正版
- go语言极速控制 go语言项目开发实战 极客时间
- go语言入门c语言中文网,go语言 c语言
- oracle删除记录查询,oracle删除查询出来的数据