[C语言]数组------自学重点-创新互联

今天是跟着b站bit鹏哥学习C语言的第18天,今天的学习内容是数组,包括一维数组和二维数组;

成都创新互联是一家专注于做网站、成都网站建设与策划设计,富川网站建设哪家好?成都创新互联做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:富川等地区。富川做网站价格咨询:18980820575

当我们定义一两个数字变量时我们会 

int a=0;int b=0;

那当我们定义好多数字时还会傻傻的向上面那样定义一整串的变量吗?那样就会将大量的时间浪费在定义变量上于是就有了”数组“

数组?

定义:用于存储多个相同类型数据的集合;

一:一维数组

1:一维数组的创建

#includeint main () 
{
    int a[];
    return0
}

向上面那样我们就创建了一个int类型数组名为a的数组;

#includeint main () 
{
    char a[];
    return 0;
}

向上面那样我们就创建了一个char类型数组名为a的数组;

2:一维数组的初始化;

#includeint main()
{
	//int n = 8;
	//int arr[n] = { 1,2,3,4,5,6,7,8 };这样的写法一般是错误的 []内一般要为常量
	int arr[8] = { 1,2,3,4,5,6,7,8 };
	// 完全初始化 数组里面有八个元素
	int arr[8] = { 1,2,3,4,5 };
	//不完全初始化 未初始化的元素为0
	char arr1[] = { 'a','b','c','d','\0'};
	char arr2[] = "abcd";
	//上面两个都是字符数组但是第一个数组在最后一定要加 '\0'
    //'\0'计算大小时(sizeof)参与计算长度(strlen)是不参与
	printf("%s\n", arr1);
	printf("%s\n", arr2);
	return 0;
}

注意!!!:[ ]中的数组可以省略

3:一维数组的大小

int main()
{
	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
	char ch[] = "adcdefghi";
	printf("%d \n", sizeof arr);
	printf("%d \n", sizeof ch);

	return 0;
}

4:数组的访问

int main()
{
	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
	for (int i = 0; i< 10; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}

注意!!!:访问数组时下标是从0开始的

5:数组在内存中的存放

int main()
{
	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
	for (int i = 0; i< 10; i++)
	{
		printf("%d\n",&arr[i]);
	}
	return 0;
}

此外, 我们也可以用指针来访问数组

int main()
{
	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
	int* p = arr;
	for (int i = 0; i< 10; i++)
	{
		printf("%d ", *p);
		p++;
	}
	return 0;
}

一维数组总结:
1:数组在内存中是连续存放的

2:随着下标的增长,地址是由高到低变化的

二:二维数组

二维数组:是用来描述一个二维表;表四几行几列;

1:二维数组的创建

#includeint main () 
{
    int a[2][3];
    return 0;
}

像这样我们就创建了一个2行3列的二维数组;

2:二维数组的初始化

int main()
{
 
	int arr[2][3] = { 1,2,3,4, };
	int arr3[2][3] = { {1,2} ,{4,5} };
	//不完全初始化 后面补0
	int arr1[2][3] = { 1,2,3,4,5,6 };
	int arr2[2][3] = { {1,2,3},{4,5,6} };
	//完全初始化
    return 0;
}

注意!!!:二维数组中只有第二个[ ]的数组可以省略

3:二维数组的访问

int main()
{
 
	int arr[2][3] = { 1,2,3,4, };
	int arr3[2][3] = { {1,2} ,{4,5} };
	//不完全初始化 后面补0
	int arr1[2][3] = { 1,2,3,4,5,6 };
	int arr2[2][3] = { {1,2,3},{4,5,6} };
	//完全初始化
	for (int i = 0; i< 2; i++)
	{
		for (int j = 0; j< 3; j++)
		{
			printf("%d ", arr1[i][j]);
		}
	}
    return 0;
}

4:二维数组在内存中的存放

int main()
{
 
	int arr[2][3] = { 1,2,3,4, };
	int arr3[2][3] = { {1,2} ,{4,5} };
	//不完全初始化 后面补0
	int arr1[2][3] = { 1,2,3,4,5,6 };
	int arr2[2][3] = { {1,2,3},{4,5,6} };
	//完全初始化
	for (int i = 0; i< 2; i++)
	{
		for (int j = 0; j< 3; j++)
			printf("%p\n", &arr1[i][j]);
	}

二维数组总结:

1:二维数组在内存中也是连续存放的!

2:一行内部连续,跨行也是连续的!

注意!!!:数组名就是数组的首元素地址
两个例外:

1:sizeof(数组名)--此时表示整个数组--计算的是整个数组的大小
2:&(数组名)取出的是整个数组的地址

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享名称:[C语言]数组------自学重点-创新互联
当前URL:http://azwzsj.com/article/jgpss.html