C构造类型 数组

1、数组是什么

一组有个固定大小、相同数据类型的数据的集合。数组

 

 

数组能够分为:一维数组、二维数组、三维数组、...(维数不止一维:多维数组)spa

表格 行和列(二维数组)指针

 

 

2、一维数组

1、通常形式

  类型说明符 数组标识符[常量表达式];内存

 

类型说明符:数组中全部元素的类型编译器

数组标识符 :数组名,跟变量的命名规则同样。字母、数字、下划线for循环

[]: 下标运算符编译

常量表达式:数组元素的个数,也就是数组的长度。只能是常量,不能是变量。变量

符号常量 #define LENGTH  10循环

2访问数组里面每个元素

经过下标访问获得每一个元素的值。array[0]遍历

3、一维数组的初始化

有几种方法:

1)用花括号{} 直接赋值

char arr[4] = {'a','b','c','d'};//初始化列表

 

arr[0]='a',arr[1]='b',arr[2]='c',arr[3]='d'

2)只给部分元素赋值,没有赋值的元素默认赋值为0

long arr[6] = {8,45,12,56};

short arr[10] = { 0 };

 

//遍历

for (int i = 0; i < 6;i++)

{

printf("arr[%d]=%ld\n",i,arr[i]);

}

3)对所有元素初始化的时候,不指定数组元素的长度

short arr[] = {1,2,3,4,5,6,7,8};

编译器会根据咱们给定的初始化元素的个数来定义这个数组的长度

 

数组越界:arr[8],arr[9] 编译器不会报错,

 

 

数组名:是一个指针常量,指向这个数组第一个元素的地址,数组的首地址。

4字符数组的初始化

char str[12] = "Hello World";//字符常量看作初始化列表

printf("%s\n",str);

 

4、数组元素赋值

char str[11] = {'H','e','l','l','o',' ','W','o','r','l','d'};

str[0] = 'W';

 

 

从键盘输入,为每个元素赋值

int arr[5];

 

scanf("%d",&arr[0]);

scanf("%d", &arr[1]);

scanf("%d", &arr[2]);

scanf("%d", &arr[3]);

scanf("%d", &arr[4]);

 

 

for (int i = 0; i < 5;i++)

{

 

printf("%d,",arr[i]);

}

 

 

使用for循环:

int arr[5];

 

for (int i = 0; i < 5;i++)

{

scanf("%d", &arr[i]);

}

 

 

for (int i = 0; i < 5;i++)

{

 

printf("%d,",arr[i]);

}

 

 

 

/////

int arr[5];

scanf("%d", arr);

 

5、数组所占内存空间的大小

一段连续的内存空间

 

数组所占的内存空间大小 = 数组类型 * 数组的长度;

printf("%d\n",arr);//是一个指针常量,指向这个数组第一个元素的地址,数组的首地址。

//sizeof()

printf("%d\n",sizeof(arr));//整个数组的大小

 

 

数组的长度:

sizeof(arr) /sizeof(int);

 

 

6const常量

不可以修改的量,必定要初始化。

const int i=10;

int arr[i];//不行

 

 

//const int i = 12;

//char arr[i] = {0};

3、多维数组

超过一维的就是多维数组,二维数组、三维数组....

一、二维数组

通常形式:

数据类型 数组名[常量表达式1][常量表达式2]

int arr[10];//一位数组

char arr[2][5];//二维数组

float arr[2][3][5];//三维数组

double ar[2][3][4][5];//四维数组

 

在内存中:一块固定大小、连续的内存空间

二、初始化

(1)、直接写在括号里面、按顺序排列

char arr[2][5]={0,1,2,3,4,5,6,7,8,9};

int arr[2][2][5]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};

 

打印一个二维数组

2)、只给部分元素赋值,其他没有赋值的默认赋值为0

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

 

3)、能够省略行下标,可是不能省略列下标

int arr[][5]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

4)、用{}括起来,分行给他赋值

相关文章
相关标签/搜索