C/C++的数组必须要进行初始化

不进行初始化的话,打印的结果都是内存中垃圾值;

#include <stdlib.h>
#include <stdio.h>

int main(void)
{
	int i;

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

	system("pause");
	return 0;
}

 

java中定义数组的时候,默认的是将数组初始化为0;

c/c++不会像java一样进行自动初始化,需要手动初始化:

#include <stdlib.h>
#include <stdio.h>

int main(void)
{
	int a[10] = {0};
	int i;

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

	system("pause");
	return 0;
	
}

 

花括号里的个数,就是数组的个数;
明确初始值的大小的话,[]里面的值可以进行下标的省略;

 

#include <stdlib.h>
#include <stdio.h>


int main3(void)
{
	int a[] ={1,2,3,4,5,6,7,8,9,10};
	int i;

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

	system("pause");
	return 0;
}

  

 

数组是不可以进行越界的;
编译的时候,会报初始设定项太多;
#include <stdlib.h>
#include <stdio.h>

int main(void)
{
	int a[10] ={1,2,3,4,5,6,7,8,9,10,11};
	int i;

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

	system("pause");
	return 0;
}

  

 

初始化的时候,是从a[0],a[1]开始往后推的;

默认没有进行初始化的值全部会清0;

 

int main(void)
{
	int a[10] = {1,2,3,4};
	int i;

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

	system("pause");
	return 0;
}

  

 

int a[] = {};这么定义是错的

数组必须明确大小

#include <stdlib.h>
#include <stdio.h>


int main(void)
{
	int a[] = {};
	int i;

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

	system("pause");
	return 0;
}

  

 

数组名的本质就是一个内存的首地址

#include <stdio.h>
#include <stdlib.h>

int main(void) { //数组名的本就是内存的一个首地址; int a[5] = {1, 2, 3, 4, 5}; int b[5] = {2, 3, 4, 5, 6}; //a = b; //错误的 //数组名是一个常量,不能修改,也不能赋值; //但是像a[1] a[2]这种数组的元素是可以进行修改的; //a + b; //错误的 //c语言的数组不可以批量操作,但是可以针对某一个元素进行批量操作; //数组名和数组名也是不可以进行比较大小的; //a < b; //数组是不能一次性进行批量打印的,唯独有一个例外就是字符串: //例: char str[] = "My name is chien. I am very happy!"; //一般是打印的字符串烫烫烫,正常是因为结尾有没有\0 char st1[] = {'c','a','l','c','\0'}; printf("%s",str); system("pause"); return 0; }

  

 

posted on 2019-03-31 00:29  寒舟独饮  阅读(279)  评论(0)    收藏  举报