《C语言复习》-数组

数组

一维数组的创建

创建的方式

#include<stdio.h>
int main() {
	//创建数组的方式
	int arr1[] = { 1,2,3,4,5 };
	char arr2[5] = {'a',98};
	char arr3[5] = "abs";
	return 0;
}

注意点:

1.错误的创建方式
int n  = 5;
int arr [n]

注意!这么创建是错误的!!!

arr []括号内部放的必须是一个常量,而这里的 n 是变量,有常量的属性,但是不能够这么创建,因为本质上还是个变量

2.strlen 和 sizeof 的 理解
#include<stdio.h>
#include<string.h>

int main() {
	//创建数组的方式
	int arr1[] = { 1,2,3,4,5 };
	char arr2[5] = {'a',98};
	char arr3[ ] = "abs";
	
	printf("%d\n", sizeof(arr2));//注意这里是5,因为数组指定了长度
	printf("%d\n", sizeof(arr3));//这里长度是4,因为除了abs还有个'\0'
	printf("%d\n", strlen(arr3));//这里长度是3,'\0'不算实际长度

    
    char arr3[] = "abc";
    char arr4[] = {'a','b','c'};
    printf("%d\n", sizeof(arr3));//4   [abc\0]
    printf("%d\n", sizeof(arr4));//3    [abc]
    printf("%d\n", strlen(arr3));//3
    printf("%d\n", strlen(arr4));//随机值
	return 0;
}

strlen求出的是\0前面的字符总数

二维数组的创建

#include<stdio.h>
#include<string.h>

int main() {
	//创建数组的方式
	int arr[3][4] = { 1,2,3,4 };//方式1
	int i,j;
	for (i = 0; i < 3; i++) {
		for (j = 0; j < 4; j++) {
			printf("arr[%d][%d]=%d\n", i, j, arr[i][j]);
		}
	}
	/*arr[0][0] = 1
		arr[0][1] = 2
		arr[0][2] = 3
		arr[0][3] = 4
		arr[1][0] = 0
		arr[1][1] = 0
		arr[1][2] = 0
		arr[1][3] = 0
		arr[2][0] = 0
		arr[2][1] = 0
		arr[2][2] = 0
		arr[2][3] = 0*/
	int arr1[3][4] = { {1,2},{4,5}};//方式2
	for (i = 0; i < 3; i++) {
		for (j = 0; j < 4; j++) {
			printf("arr1[%d][%d]=%d\n", i, j, arr1[i][j]);
		}
	}
	/*arr1[0][0]=1
	arr1[0][1]=2
	arr1[0][2]=0
	arr1[0][3]=0
	arr1[1][0]=4
	arr1[1][1]=5
	arr1[1][2]=0
	arr1[1][3]=0
	arr1[2][0]=0
	arr1[2][1]=0
	arr1[2][2]=0
	arr1[2][3]=0
*/
	int arr2[][4] = { {2,3},{4,5} };//方式3


	return 0;

记得方式3中纵列一定要有值!横列可以有可以没有

经典二维数组

冒泡排序

#include<stdio.h>
#include<string.h>
void bubble_sort(int* arr, int len);

int main() {
	int arr[] = { 10,9,8,7,6,5,4,3,2,1 };
	int i;
	int len = sizeof(arr) / sizeof(arr[0]);
	bubble_sort(arr,len);
	for (i = 0; i < len; i++) {
		printf("%d\n", arr[i]);
	}
	return 0;
}
void bubble_sort(int* arr, int len) {
	int i, j, temp;
	for (i = 0; i < len; i++) {
		
		for (j = 0; j < len - 1- i; j++) {
			if (arr[j] > arr[j+1]) {
				temp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = temp;
			}
		}
	}
}
上一篇:java 构造方法


下一篇:位运算之异或问题