06:C语言数组

发布于:2024-07-07 ⋅ 阅读:(36) ⋅ 点赞:(0)


数组就是数组成一个组,数就是一个特定 数据类型相同的变量,组就是说好多数放在了一起。

1、怎么定义数组

int a[5] = {1234};//不完全初始化,a[4] = 0
......................
或者:
int a[5];
a[0] = 1;	
a[1] = 2;	
a[2] = 3;	
a[3] = 4;	
......................
或者:
int a[5] = {1, 2, 3, [4] = 99};//a[3] = 99,a[4] = 0

数组中元素类型  数组名[数组元素个数];

总结:数组中的所有元素必须是同一种数据类型,不可能在一个数组中存储两种数据类型的数。

2、怎么使用数组?

数组定义的时候作为整体定义。但是使用的时候不能作为整体使用,使用时必须拆开使用数组中的各个元素。譬如数组int a[4],使用其中的四个元素,分别用a[0]~a[3],其中[ ]是数组的标志,[ ]中的数字叫做数组下标(index,索引),下标是我们访问数组中各个元素的指引。下标是0代表数组中第一个元素,下标是1代表数组第二个元素。如果数组长度为n,下标中最后一个是n-1。访问数组时要特别注意下标,下标是从0开始的,如果下标超出了n-1,会产生越界访问,结果是不可预期的。

/*键盘录入数组元素,并依次输出*/
#include <stdio.h>
int main(void)
{
	int i;
    int a[5];
	printf("请输入5个整数,中间以空格隔开\n");
	for(i=0 ;i<=4 ;++i)
	{
		scanf("%d",&a[i]);
	}

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

3、不同数据类型的数组

int a[5];			// 整形数组
float a[5];			// 浮点型数组
double a[5];		// 双精度浮点型数组
char a[5];			// 字符数组

程序在环境中运行时,需要一定的资源支持。这些资源包括:CPU(运算能力)、内存等,这些资源一般由运行时环境(一般是操作系统)来提供,譬如我们在linux系统上./a.out运行程序时,linux系统为我们提供了运算能力和内存。

程序越庞大,运行时消耗的资源越多。譬如内存占用,越大的程序,占用的内存越多。占用内存的其中之一,就是我们在程序中定义的变量。

C语言程序中,变量的实质就是内存中的一个格子。当我们定义(创造一个变量)了一个变量后,就相当于在内存中得到了一个格子,这个格子的名字就是变量名,以后访问这个内存格子就使用该变量名就行了。这就是变量的本质。

数据类型的实质是内存中格子的不同种类。譬如在32/64位机器上

短整形格子(short)					占用2字节空间 16位
整形格子(int)			            占用4字节空间 32位
长整形格子(long)                    占用8字节空间 64位
单精度浮点型格子(float)			    占用4字节空间 32位
双精度浮点型格子(double)		        占用8字节空间 64位
字符型格子(char)				    占用1字节空间 8位

4、sizeof运算符

作用:返回一个变量或者一个数据类型的内存占用长度,以字节为单位。

#include <stdio.h>

int main(void)
{
	int len;
	int a[4];
	len = sizeof(int);
	printf("len = %d\n",len);
	len = sizeof(a);//4 * 4 = 16个字节
	printf("len = %d\n",len);

	return 0;
}

len = 4
len = 16

5、字符数组

#include <stdio.h>

int main(void)
{
	int i,len;
	char a[] = {'a', 'b', 'c', 'd', 'e'};//[]中的数字省略了
	char b[] = "abcde";//和上面的初始化相同
	len = sizeof(a);
	for(i=0; i<=4; i++)
	{
		printf("%c",a[i]);
	}
	printf("\n%d\n",len);
	len = sizeof(b);
	for(i=0; i<=4; i++)
	{
		printf("%c",b[i]);
	}
	printf("\n%d\n",len);
	return 0;
}


abcde
5
abcde
6

基础知识:
1、在C语言中引用一个单个字符时,应该用单引号’‘括起来,譬如’a’。
2、定义数组同时初始化,则可以省略数组定义时[ ]中的长度。C语言编译器会自动推论其长度,推论依据是初始化式中初始化元素的个数。由此可知,省略[]中数组元素个数只有一种情况,那就是后面的初始化式必须为完全初始化。
3、在C语言中引用一个字符串时,应该用"“括起来,譬如"abcde”。"abcde"实际上有6个字符,分别是’a’ ‘b’ ‘c’ ‘d’ ‘e’ ‘\0’
‘\0’ 这个字符是ASCII码表中的第一个字符,它的编码值是0,对应的字符是空字符(不可见
字符,在屏幕上看不见,没法显示,一般要用转义字符方式来显示。譬如’\n’表示回车符,‘\t’表示Tab,’\0’代表空字符)
'\0’是C语言中定义的字符串的结尾标志。所以,当c语言程序中使用"abcde"这种方式去初始化时,编译器会自动在字符’e’后面添加一个’\0’。于是乎变成了6个字符。


网站公告

今日签到

点亮在社区的每一天
去签到