C03_C语言-数组

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值