IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言 数组 -> 正文阅读

[C++知识库]C语言 数组

目录

问题:什么是数组

一维数组

1.一维数组的定义

2.一维数组的引用

3.一维数组的初始化

(1)给全部元素赋初值

??(2) 只给部分元素赋初值

二维数组

1.二维数组的定义

2.二维数组的引用

3.二维数组的初始化

??(1) 分行初始化

? (2) 连续初始化(按数组排列的顺序将所有数据写在一个花括号{}内)

??(3)部分初始化(未赋值的元素会自动取0值)

?4.二维数组的输入输出

?字符数组

1.字符数组的定义

2.字符数组的初始化

??(1) 逐个元素初始化

(2)用字符串来初始化字符数组

??(3)定义和初始化一个二维字符数组

3.字符数组的输入输出

(1)用格式符"%c"逐个输入和输出数组中的字符

? ?(2) 用格式符"%s"以字符串形式输入输出?


问题:什么是数组

数组是把具有相同类型的若干变量按有序的形式组织起来的集合

数组的分量(元素):组成数组的每个变量

数组必须先定义后使用

一维数组

1.一维数组的定义

类型说明符? 数组名[常量表达式];

常量表达式为数组元素的个数,即数组大小

[ ]中可为普通常量或符号常量,不能为变量

例: int? a[5]

1.它表示定义了一个整型的数组,数组名为 a。

2.数组名代表数组在内存中存放的首地址。

3.这里有5个int型的元素,而且它们在内存中所占用的存储空间是连续的

2.一维数组的引用

? 数组名? [下标]

下标:用来区分数组的每个元素的数字编号,下标必须从 0 开始;

例:数组 int a[10] 中10个元素的引用

a[0]? a[1]? a[2]? a[3]? ......a[9]??

a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]

a[9]

下标可以是常量、变量或者是表达式

例:

数组 int? a[10] 中元素的引用

a[1]? a[i]? a[i+1]

3.一维数组的初始化

(1)给全部元素赋初值

例:

int? a[i] ={0,1,2,3,4};

a[0]=0, a[1]=1, a[2]=2, a[3]=3, a[4]=4

(2) 只给部分元素赋初值

例:

?int a[5]={0,2,4}; 即 int a[5]={1,2,4,0,0};

a[0]=0, a[1]=2, a[2]=4, a[3]=0, a[4]=0

例:求数组中元素的最大值

#include<stdio.h>
int main()
{
	int i,a[5],max;
	printf("input 5 numbers:\n");
	for(i=0;i<=4;i++)
	  scanf("%d",&a[i]);
	  max=a[0];
	  for(i=1;i<=4;i++)
	  if(a[i]>max)
	  max=a[i];
	   printf("%2d",max);
 } 

运行结果如下:

二维数组

1.二维数组的定义

类型 数组名 [表达式1]? [表达式2];

表达式1:行数

表达式2:列数

例:int a[3][4]??

表示数组a 是一个三行四列的

注:

它是按行存放的,二维数组可看成特殊的一维数组

2.二维数组的引用

int? a [2] [3];

a[1] [2] =a[0][2]/2? ? ? ? ?//下标值应在已定义的数组大小范围内

a[2][3]? X? ? ?// 这里下标的最大值分别为1、2,?所以不正确?? ? ? ??? ??

3.二维数组的初始化

(1) 分行初始化

例:

int [2] [3]={

? ? ? ? ? ? ? ? ? {1,2,3}

? ? ? ? ? ? ? ? ? {4,5,6}

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? };

? (2) 连续初始化

int a [2] [3] ={1,2,3,4,5,6};? //按数组排列的顺序将所有数据写在一个花括号{}内? ? ?

等价于 int a[ ] [3] =?{1,2,3,4,5,6};???

?(3)部分初始化

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

则该数组赋值后的各元素的值为:

1 0 0

0 5 0

//未赋值的元素会自动取0值

?4.二维数组的输入输出

二维数组的输入输出是通过对二维数组的每个元素的输入输出实现的

二维数组的输入输出方法示例:

通过双重循环按行列逐个输入、输出

for (i=0;i<r;i++)

? ? ?for (j=0;j<c;j++)

? ? ? ? a [i] [j]

例:二维数组的输入输出?

#include<stdio.h>
int main()
{
	int i,j,a [3] [4];
	printf("input array numbers:\n");
	for(i=0;i<3;i++)
	   for (j=0;j<4;j++)
	       scanf("%d" ,&a [i] [j]);
	       printf("output array numbers:\n");
	       for (i=0;i<3;i++)
	       {
	       	   for (j=0;j<4;j++)
	       	     printf("%d ",a [i] [j]);
	       	       printf("\n");
		       }
	  return 0;
 } 

?运行结果如下:

?字符数组

1.字符数组的定义

char 数组名 [常量表达式]

如:char a[5]

该数组元素为: a[0],a[1],a[2],a[3],a[4]

每一个元素的值为一个字符,每一个存储单元为一个字节

2.字符数组的初始化

(1) 逐个元素初始化

例:

char c[10]={'a', 'b', 'a', 'n', 'd', 'o', 'n'};?

这里元素个数不能大于数组长度,该数组中,这些字符被赋给数组中前面的元素,其余的元素则自动定为空字符,即'\0'

如下表:

abandon\0\0\0

如果元素个数=数组长度,则在定义时可省略数组长度

(2)用字符串来初始化字符数组

?例:

char a[11]={ "Hello Word"}

He?l?l?o??Word?\0

?(3)定义和初始化一个二维字符数组

char a [2] [2]={

? ? ? ? ? ? ? ? ? ? ? ? ?{'a', 'b'},

? ? ? ? ? ? ? ? ? ? ? ? ? {'b' ,'c'}};

3.字符数组的输入输出

(1)用格式符"%c"逐个输入和输出数组中的字符

例:

char a[10];

scanf("%c",&a[0]);? //输入字符串

printf("%c",a[0]);? ? //输出字符串

(2) 用格式符"%s"以字符串形式输入输出?

例:

char a[5] ="12345";

printf("%s",a);

注:1.输入字符串时,遇到空格键或回车键结束输入,并且所读入的字符串不包含空格键或回车键,而是在字符串末尾添加'\0'

? ? ? ?2.输入多个字符串,输入时应以空格键或回车键作为字符串间的分隔

例:

#include <stdio.h>
#include<string.h>
int main(){
	char a[]="123\0\n";
	char b[]="123\00abc\n";
	printf("%s长度是%d占%d字节\n",a,strlen(a),sizeof(a));
	printf("%s长度是%d占%d字节\n",b,strlen(b),sizeof(b));    
	return 0;
}

?运行结果如下:

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-11-05 00:06:35  更:2022-11-05 00:11:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 3:29:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码