一维数组二维数组数组作为函数参数
数组是什么?
数组是一组相同类型元素的合集
数组的创建方式:
type_t arr_name [const_n]
type_t 是指数组的元素类型
const_n 是一个常量表达式,用来指定数组的大小
[ ] ,下标引用 *** 作符,数组访问 *** 作符
数组创建,[ ] 中要给一个常量才行,不可以使用变量数组使用下标来访问的,下标从0开始数组的大小可通过计算得到 一维数组
一维数组在内存中的存储
二维数组数组在内存中是从低地址朝高地址连续存放的
数组作为函数参数二维数组在内存中也是连续存储的
数组也可作为参数传给函数
我们先来了解一下数组的数组名是什么
数组名是数组首元素的地址,但是有两个例外:数组名表示整个数组
sizeof 内部单独放一个数组名,计算整个数组的大小,例:sizeof (arr)& 数组名,取出的是数组的地址,例:&arr
除此两种情况之外,所有的数组名都表示数组首元素的地址
所以当数组传参的时候,如果是一个整型数组,函数参数部分写成 int arr[ ] ,表示的依然是一个指针: int* arr ,也就是说,实际上只是把数组的首元素的地址传递过去了
如果程序此时在函数内部计算数组的大小并使用的话,sizeof (arr)的结果只是首元素的大小,即 4
如果想在函数内部使用数组大小,数组大小需要作为一个参数与数组一起传递给函数
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)