1.声明和初始化
/*不建议的声明及创建方法*/
int lt = 3;
int nums[lt];
nums[0] = 98;
nums[1] = 43;
printf("%d, %d\n", sizeof(nums)/sizeof(int), nums[2]);//尽管声明及创建都未报错,但未初始化的位置的值不是理想值
//int numss[lt] = {4, 3, 5};//错误的声明及创建,指定长度只能用常量
/* 声明并初始化数组 - 1 */
int nums1[3];
nums1[0] = 34;
nums1[1] = 46;
nums1[2] = 97;
printf("nums1长度:%d\n", sizeof(nums1)/sizeof(int));
/* 声明并初始化数组 - 2 */
int nums2[3] = {34, 46, 97};
printf("nums2长度:%d\n", sizeof(nums2)/sizeof(int));
/* 声明并初始化数组 - 3 */ //如果这里没有初始化,是错误的
int nums3[] = {34, 46, 97, 44}; //长度为初始化的元素个数
printf("nums3长度:%d\n", sizeof(nums3)/sizeof(int));
/* 声明并初始化数组 - 4 */
int nums4[3] = {[2] = 97}; //未指定的默认初始化为0
printf("nums4长度:%d\n", sizeof(nums4)/sizeof(int));
/* 声明并初始化数组 - 5 */
int nums5[] = {[2] = 97}; //未指定的默认初始化为0
printf("nums5长度:%d\n", sizeof(nums5)/sizeof(int));
2.数组作为函数参数
//参数类型为整型数值
void intChange(int arg){
arg = 9090;
}
int main() {
int array[] = {3,4,4,5};
arrChange(array); //实参,数组名代表地址
printf("%d \n", array[1]); //99
intChange(array[1]); //形参,不影响原始数据
printf("%d \n", array[1]); //99
}
3.排序和倒序
//这里的实参arr实际是指针,长度固定为8,不能通过它获取数组长度
void show(int arr[], int length){
int i;
for(i=0; i<length; i++){
printf("%d\t", arr[i]);
}
printf("\n");
}
int main() {
int array[] = {3,8,4,5};
int i, j, temp=array[0];
for(i=1; i< sizeof(array)/sizeof(int); i++){
if(array[i]>temp){
temp = array[i];
}
}
printf("最大值:%d\n", temp);
//排列
//外围:控制操作值的个数
for(i=0; i< sizeof(array)/sizeof(int)-1; i++){
//内部:排除操作结束的值
for(j=0; i< sizeof(array)/sizeof(int)-1-j; j++){
//换位条件
if(array[j] < array[j+1]){
temp = array[j];
array[j] = array[j+1];
array[j+1]= temp;
}
}
}
show(array, sizeof(array)/sizeof(int));
//倒序
//外围:控制操作值的个数
for(i=0; i< sizeof(array)/sizeof(int)-1; i++){
//内部:排除操作结束的值
for(j=0; i< sizeof(array)/sizeof(int)-1-j; j++){
temp = array[j];
array[j] = array[j+1];
array[j+1]= temp;
}
}
show(array, sizeof(array)/sizeof(int));
}
4.二维数组
//根数组可以不指定,子数组必须指定
int arr[][5] = {
{3, 8, 4, 5}, //初始化如同一维数组
{13, 22, 45, 5},
{43, 3, 21, [4] = 56},
{[1] = 38, 4, 9, 7}
};
printf("%d\n", arr[2][4]); //56
printf("%d\n", arr[3][4]); //7
- end