C语言中,即使参数声明为数组,它仍然是个指针
2012-02-26 22:21
337 查看
转自:《C专家编程》
非参数指针:
语句array = array2; 将引起一个编译错误,错误信息是“无法修改数组名”。但是,arr = array2却是合法的,因为arr虽然声明为一个数组但实际上仍是一个指针。
非参数指针:
int array[10], array2[10]; main(){ array[1] = 3; *array = 3; array = array2; /*失败*/ }指针实参:
fun1(int *ptr){ ptr[1] = 3; *ptr = 3; ptr = array2; }数组实参:
fun2(int arr[]){ arr[1] = 3; *arr = 3; arr = array2; }
语句array = array2; 将引起一个编译错误,错误信息是“无法修改数组名”。但是,arr = array2却是合法的,因为arr虽然声明为一个数组但实际上仍是一个指针。
相关文章推荐
- C语言数组参数与指针参数
- C语言中 数组到底是不是指针和数组作为参数问题
- C语言提高-第23/24/25讲: 指针的运算/数组名作为函数参数/指针作函数参数(一维数组Vs指针)
- C语言 内存分配 地址 指针 数组 参数 实例解析
- C语言 内存分配 地址 指针 数组 参数 实例解析
- C语言 内存分配 地址 指针 数组 参数 实例解析
- C语言之数组专题:数组指针、指针数组、数组做函数参数退化、数组名、数组类型
- C语言中,数组名作为参数传递给函数时,退化为指针
- C语言学习笔记22——数组参数和指针参数
- C语言 内存分配 地址 指针 数组 参数 实例解析
- C语言,结构体中字符串的声明(采用字符指针还是字符数组)
- 参数声明中的静态数组索引:一个不错且鲜为人知的C语言特性
- C语言一级指针、二级指针、数组作为参数传递需要注意的若干问题
- C语言中,数组名作为参数传递给函数时,退化为指针
- 声明一个指向含有10个元素的数组的指针,其中每个元素是一个函数指针,该函数的返回值是int,参数是int*,正确的是()
- C语言--定义为数组,声明为指针&定义为指针,声明为数组
- c语言复杂变量声明(数组、指针、函数)
- C语言中,数组名作为参数传递给函数时,退化为指针
- 《IOS_C语言》高级指针(结构体指针、结构体数组指针、结构体数组指针,作为函数的参数使用、预编译指令)
- C语言之使用指针数组传递参数