c语言一维数组

C语言一维数组

数组 一组数
一组相同类型元素的集合

在这里插入图片描述
arr_数组名
对应语法形式上如下

//想创建一个数组
int main()
{
	int arr[8]; //创建一个数组 数组名为arr 数组类型为int  8个元素
	char ch[5];
	return 0;
}

在这里插入图片描述
数组的创建需要常量表达式 int n是变量

数组的初始化

int main()
{
	int a = 0;//普通初始化
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };//输出结果全输出  为完全初始化
	int arr[10] = { 1,2,3,4,5 };//不完全初始化
	int arr[] = { 1,2,3,4,5 };  //结果为5  相当于跟上面的差不多   中括号里面为空表示不限定大小,如果初始化了,则根据初始化内容,确定数组大小
	char arr[5] = { 'c','i','t' };// 运行结果为 cit\0\0
	char arr[]={ 'c','i','t' };//运行结果为cit

	char ch3[5] = "bit";//b i t \0 0      0相当于\0
	char ch3[] = "bit"; //结果为4   b i t \0



	/*下面两个方法区别*/
	char ch5[] = "bit";
		 //四个元素
	char ch6[] = { 'b','i','t'};//  
	//结果为  b  i  t

	return 0;
}

在这里插入图片描述
** 这里解释下ch6的打印结果,先是正常打印出了bit,然后因为万物皆有灵,GPU被烫到了,然后它会打印出来烫字,至于后边的蘠it,是因为GPU躺倒滚键盘的程度了**

	printf("%d", strlen(ch5));  //求字符串长度 为3后面有个\0  判断字符串的长度的标准就是找到\0但是他不算长度
	printf("%d", strlen(ch6));//没有\0  所以结果为随机值

一维数组的使用

[] 这是下标引用操作符

在这里插入图片描述

int main()
{
	int arr[10] = {0};
	arr[4] = 5;//下标引用操作符
	int i = 0;
	int sz = sizeof(arr) / sizeof(arr[0]);
	for (i = 0; i <sz; i++)
	{
		printf("%d ", arr[i]);
	}

	return 0;
}

在这里插入图片描述
圈起来的 左边的值为40 右边为4 因为数组元素大小 每一个元素都是一个指针 任何类型的指针永远是占四个字节


一维数组在内存中的存储

看代码:
在这里插入图片描述
在这里插入图片描述
都差4 第三个B0是因为十六进制数 逢16进1为0 虽然差4 但是就是一个元素的大小
由上可知 一维数组在内存中实现需存放的
随着数组下标的增长,地址是由低到高变化的


由概念总结到 知道第一个下标地址就能知道后面的
在这里插入图片描述

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	arr;//数组名是数组首元素的地址  就是1的地址  1的地址是整形的地址  所以可以把他放在整形指针里
	int* p = arr;//现在1的地址就在指针p里
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		printf("%d ", *p);
		p++;
	}

	return 0;
}

因为数组在内存中是连续存放的 随意可以实现以上代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值