c语言:数组

一、数组的初始化

1.我们已知要存放的数的顺序、内容。

    int a[]={1,2,3};//也可以写作int a[3] = {1,2,3};
	printf("%d\n",sizeof(a));//结果是12.要知道,一个int长度就是4个字节
	printf("%d",a[1]);//结果是2.注意,a[5]=随机乱码

2.只是随意想创造一个数组

    int a[] ={};
	printf("%d",sizeof(a));

可以看到我们令数组为空。说实话,我没想到编译没出现问题。

然后我有点好奇,我想要看看这个不曾被任意操作的数组里面到底有些什么

#include <stdio.h>
int main(void)
{
	int a[] ={};
	for (int i=1;i<=105;i++){
		printf("%d\n",a[i]);
	}
}

可以看到大部分是0,其间镶嵌着奇怪的数字。我猜测,这些数字和我的电脑内存有关系。

3.试图存放更多的数进去

int b[3]={1,2,3,4,5,6};

进行这样操作编译器会报错:: [Error] too many initializers for 'int [3]'

int a[10]={1,2,3};

这样却不会报错。并且发现:打印出a数组的前十项分别是1 2 3 0 0 0 0 0 0 0 

如果打印出前二十项,则是 从第11到第20项 在0之间随机散布数字。

//我意识到我可以通过函数精简我的代码,然而,我暂时不了解如何对函数传入数组。所以姑且用了冗杂的代码。//

4.快速初始化数组:

	int a[10]={2};
	for (int i = 0;i<=9;i++){
		printf("%d\t",a[i]);
	}
	printf("\n");
	int b[10]={0};
	for (int i = 0;i<=9;i++){
		printf("%d\t",b[i]);
	}

可以看到,这种方法可以令首位为我们设定的数,其他位标为0; 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值