做化妆品代理在那些网站比较多,做思维导图好看的网站,浙江平台网站建设公司,企业网站建设的基本要素有哪些数组#xff1a;只能存放一种数据类型#xff0c;比如int类型的数组、float类型的数组#xff0c;里面存放的数据称为“元素”。数组的定义#xff1a;首先声明数组的类型#xff0c;然后声明数组元素的个数#xff0c;也就是定义需要多少存储空间。数组格式与初始化格式… 数组只能存放一种数据类型比如int类型的数组、float类型的数组里面存放的数据称为“元素”。 数组的定义 首先声明数组的类型然后声明数组元素的个数也就是定义需要多少存储空间。数组格式与初始化 格式元素类型 数组名[元素个数]; 比如int[3]; 数组元素有顺序之分每个元素都有一个唯一的下标索引而且都是从0开始。 数组中第i个元素的访问方式: a[i] 数组元素的初始化int a[3] {10, 9, 6};
int a[3] {10,9};
int a[] {11, 7, 6};
int a[4] {[1]11,[0] 7};[ ]里面的个数必须是一个固定值可以是常量(比如6、8)、常量表达式(比如3 4、5*7)。绝对不能使用变量或者变量表达式来表示元素个数大多数情况下不要省略元素个数当数组作为函数的形参和数组初始化时除外。 C语言中编译器是不会对数组下标越界进行检查的所以自己访问数组元素时要注意。一维数组数组的内存细节分析#include
int main()
{char cs[5] {a,A,D,e,f}; printf(%p\n,cs); // 数组名就代表数组的地址 for (int i 0; i5; i ) { printf(cs[%d]的地址是:%p\n,i ,cs[i]); } return 0;
} 上面代码中地址分配分析如下 一维数组的元素作为函数实参与同类型的简单变量作为实参一样是单向的值传递即数组元素的值传给形参从而形参是改变不影响实参。 数组名代表着整个数组的地址如果一维数组的名字作为函数实参传递的是整个数组即形参数组和实参数组完全相同是存放在同一存储空间的同一个数组。这样形参数组修改时实参数组也同时被修改了。形参数组的元素个数可以省略。// b是test函数的形参(形式参数)
void test(int b) { b 9;
}
int main()
{ int a[3]; a[0] 10; printf(函数调用前的a[0]%d\n, a[0]); test(a[0]); // a[0]是test函数的实参(实际参数) printf(函数调用后的a[0]%d, a[0]); return 0;
}
#include
//数组作为函数参数可以省略元素个数
//数组作为函数参数传递是整个数组的地址修改了函数形参数组元素的值会影响到外面的实参数组
void change(int array[])
{ printf(array %p\n,array); array[0] 100;
}
int main()
{ int ages[6] {10,11,13,15,11,18}; printf(array %p\n,ages); change(ages); printf(%d\n,ages[0]); return 0;
}输出结果为array 0x7fff5be26c00
array 0x7fff5be26c00
100数组的小练习找最大值/*
设计一个函数找出整型数组元素的最大值
*/ #includeint maxOfArray(int array[], int length)
{ // 数组当做函数参数传递时会当做指针变量来使用指针变量在64bit编译器环境下占据8个字节 //int size sizeof(array); //printf(array%d\n, size); //sizeof(array); // 1.定义一个变量存储最大值(默认就是首元素) int max array[0]; // 2.遍历所有元素找出最大值 for (int i 1; i { // 如果当前元素大于max就用当前元素覆盖max if (array[i] max) { max array[i]; } } return max;
} int main()
{ int ages[] {11, 90, 67, 150, 78, 60, 70, 89, 100}; int ages2[] {11, 90, 67, 150, 78, 60, 70, 89, 100}; //int size sizeof(ages); //printf(ages%d\n, size); int max maxOfArray(ages, sizeof(ages)/sizeof(int)); printf(%d\n, max); return 0;
}
二维数组 一个数组能表示一个班人的年龄如果想表示很多班呢 什么是二维数组int ages[3][10]; 三个班每个班10个人相当于3行10列相当于装着3个一维数组。 二维数组是一个特殊的一维数组它的元素是一维数组。例如int a[2][3]可以看作由一维数组a[0]和一维数组a[1]组成这两个一维数组都包含了3个int类型的元素。 定义形式类型 数组名[ 行数] [列数]
int a[2][3]; //2行3列的二维数组 二维数组的存放顺序是按行存放的先存放第一行的元素再存放第2行的元素。例如int a[2][3]的存放顺序是a[0][0] → a[0][1] → a[0][2] → a[1][0] → a[1][1] → a[1][2]二维数组的内存存储分配 注意a[0]、a[1]也是数组是一维数组而且a[0]、a[1]就是数组名因此a[0]、a[1]就代表着这个一维数组的地址。数组a的地址是ffc1数组a[0]的地址也是ffc1即a a[0]元素a[0][0]的地址是ffc1所以数组a[0]的地址和元素a[0][0]的地址相同即a[0] a[0][0]最终可以得出结论a a[0] a[0][0]以此类推可以得出a[1] a[1][0] 二维数组的初始化 int ages2[3][5] { {10, 11, 90, 89, 70}, {10, 11, 90, 89, 70}, {10, 11, 90, 89, 70} };声明本文于网络整理版权归原作者所有如来源信息有误或侵犯权益请联系我们删除或授权事宜。