【C语言】数组

createh51周前 (05-15)技术教程10

1、什么是数组

典型的复合类型:同一类型变量的连续内存组成的数据类型。数组定义时(没初始化),必须指定数组的大小(或长度),数组大小必须是整形常量表达式,不能是变量或变量表达式。

下面定义数组错误的写法

1. int n = 3;

2. int b[n];错误

3. int c[10.3];错误

(important)

#define m 4

Int d[m]; 正确 宏定义可以

Int e[] = {1,2,3,4} 这也是可以的,编译器会自动识别数组e的大小为4

一维数组在内存当中是连续的一段内存单元,首地址为数组名字 e == &e[0];

例如 int a[3] = {1,3,4};

数组下标从0开始,所以数组不能越界,只能取到a[2]的值

不能取到a[3]的值a + i 等价于 &a[i] *(a+i) = *&a[i] = a[i]

#include <stdio.h>
#define n 3
int main () {
	int a[n] = {1,3,4};
	int i=0;
	//a 首地址 a+1,a+2, 
	for(;i<n;i++)
	{
		printf("a[%d]的地址是:%p,&a[%d] = %p\n",i,a+i,i,&a[i]);	
	}
	return 0;
}

求数组的长度

int len = sizeof(a) / sizeof(int);

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

数组大小为5,但是初始化只给了前三个值,后面的两个值默认被赋值为0

冒泡排序举例如下:

void bubbleSort(int a[],int length)
{
	int i,j,temp = 0;
	for(i=1;i<length;i++)
	{
		for(j=0;j<length-i;j++)
		{
			if(a[j]>a[j+1])
			{
				temp = a[j];
				a[j] = a[j+1];
				a[j+1] = temp;		
			}
		}
	}
}

选择排序如下:

void selectSort(int a[],int length)
{
	int i,j,k,t;
	for(i=0;i<length;i++)
 	{
		k = i;
        for(j = i+1;j<length;j++)
		{
			if(a[k]>a[j]) k = j;	
		}
		if(i!=k)
		{
			t = a[i];
			a[i] = a[k];
			a[k] = t;
		}
	}
}

2、二维数组

int a[2][3] = {1,2,3,4,5,6}; 两行三列

可以看出 二维数组在内存当中是以行存储的顺序存储方式

二维数组是特殊的一维数组

初始化

Int a[][3] = {1,2,3,4};

代表列的数must不能省略

1

2

3

4

0

0

3、字符串与数组

‘a’ ‘\101’ = ‘A’(转义字符考察的比较多)

字符串是一种以’\0’结尾的字符数组

字符数组和字符串。

三个等价

char str[] = “china”;

char str[] = {‘c’,’h’,’I’,’n’,’a’,’\0’};

char str[] = {“china”}

字符串不能这样赋值

char str[] = {‘c’,’h’,’I’,’n’,’a’}; //not 字符串

这是一个数组,但不是字符串,没有’\0’结尾

char str[10];

str = “china”;

这样也不行,数组名字是数组的首地址,不能赋值

相关文章

C语言一维数组,到底是什么一回事?细细道来

一维数组定义和使用一维数组的定义格式如下:数据类型 数组名 [常量值];格式分析:(1) 数据类型,表示要在数组中,存放数据的类型。例如,要存放整数值,可以是int类型;要存放字符,可以是char类型...

原来C语言多维数组这么好玩!带你轻松拿捏

程序员Feri一名12年+的程序员,做过开发带过团队创过业,擅长Java、鸿蒙、嵌入式、人工智能等开发,专注于程序员成长的那点儿事,希望在成长的路上有你相伴!君志所向,一往无前!在C语言的世界里,多维...

C语言-闲聊一维、二维数组

①若a[i]为一维数组则有,a[0],为数组的一个元素。a[i]=*(&a[i]),为数组的一个元素。a+i=&a[i],为元素a[i]的地址。*(*(a+i))=*(*&a[...

C语言中的一维数组理解

在C语言中,数组作为一种最常见的数据集,它属于C语言类型定义的构造类型,它中间的每一个成员类型完全一致,也就是说只要一定义了一维数组的数据类型,那么,它中间的元素就必须全部是这种类型,在数组中,所有...

60.一维数组的应用 讲解VB中一维数组的应用。

任务实施2:计算一个班级45名学生的语文考试成绩的平均分。它给出的界面是单击输入,单击输入计算按钮就会弹出输入框,请输入第几位学生的语文成绩。输完语文成绩之后会弹出一个消息框显示语文成绩的平均分。这是...

大话C语言:数组

1 数组概述数组是若干个相同类型的变量在内存中有序存储的集合。数组是 C 语言中的一种数据结构,用于存储一组具有相同数据类型的数据。数组在内存中会开辟一块连续的空间数组中的每个元素可以通过一个索引(下...