学点 C 语言(36): 函数 - 数组参数
2008-12-04 15:47
225 查看
数组参数属于指针参数.
指针参数即时传址参数(或叫引用参数), 如果想在函数中修改参数的值, 这是唯一的途径.
如果把数组当作参数, 不管你愿意与否, 它就是指针, 指向第一个值的指针.
1. 数组参数就是指向第一个元素的指针:
2. 干脆直接声明为指针:
3. 即使你在形参中指定维数也不起作用:
4. 既然是指针, 其值就有被修改的可能:
5. 如果是字符数组, 它自己能判断数组尾界:
指针参数即时传址参数(或叫引用参数), 如果想在函数中修改参数的值, 这是唯一的途径.
如果把数组当作参数, 不管你愿意与否, 它就是指针, 指向第一个值的指针.
1. 数组参数就是指向第一个元素的指针:
#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; i < si; 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; i < si; 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; i < si; 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; i < sizeof(ns)/sizeof(ns[0]); i++) { printf("%d\n", *(ns+i)); } getchar(); return 0; } void getArr(int p[], int si) { int i; for (i = 0; i < si; 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 语言(36): 函数 - 数组参数
- 学点 C 语言(36): 函数 - 数组参数
- C语言技巧:怎样把数组作为参数传递给函数?
- C语言数组作为函数参数
- C 语言函数参数只能传指针,不能传数组
- C程序设计语言- 导言-1.2----函数、参数的传值调用、字符数组、外部变量与作用域
- go语言函数参数与返回值示例,数组的简单应用
- 【C 语言】指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 | 数组指针 | 多维数组 | 多维指针 | 数组参数 | 函数指针 | 复杂指针解读)
- C语言学习6 :指针的定义,指针类型要合法,指针要初始化,指针做函数参数,数组和指针的通用性,指针+1所代表的空间,void * 指针,交换函数中的指针,数组和字符型指针区别,字符型指针的应用,使用指针完成字符操作函数
- C语言基础知识之(十二):结构体作为函数的参数(结构体变量、结构体数组)
- C语言 函数理解(以数组做参数)
- c语言之函数参数传递之数组篇(转)
- C 语言的数组作为参数在函数之间的传递
- 第10周 C语言及程序设计提高例程-36 多维数组作函数参数
- C程序设计语言- 指针与数组-4.1----指针与地址、指针与函数参数、指针与数组、地址算术运算
- C语言数组作为函数参数及保护数组内容
- C语言中实参和形参问题&&函数使用数组作为参数的问题
- C语言及程序设计提高例程-36 多维数组作函数参数
- C语言之数组专题:数组指针、指针数组、数组做函数参数退化、数组名、数组类型
- 作为函数参数时String和String[]数组的区别