C构造类型 数组
一、数组是什么
一组有个固定大小、相同数据类型的数据的集合。
数组可以分为:一维数组、二维数组、三维数组、...(维数不止一维:多维数组)
表格 : 行和列(二维数组)
二、一维数组
1、一般形式
类型说明符 数组标识符[常量表达式];
类型说明符:数组中所有元素的类型
数组标识符 :数组名,跟变量的命名规则一样。字母、数字、下划线
[]: 下标运算符
常量表达式:数组元素的个数,也就是数组的长度。只能是常量,不能是变量。
符号常量 #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);
6、const常量
不能够修改的量,一定要初始化。
const int i=10;
int arr[i];//不行
//const int i = 12;
//char arr[i] = {0};
三、多维数组
超过一维的就是多维数组,二维数组、三维数组....
1、二维数组
一般形式:
数据类型 数组名[常量表达式1][常量表达式2]
int arr[10];//一位数组
char arr[2][5];//二维数组
float arr[2][3][5];//三维数组
double ar[2][3][4][5];//四维数组
在内存中:一块固定大小、连续的内存空间
2、初始化
(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)、用{}括起来,分行给他赋值
C构造类型 数组的更多相关文章
- c语言构造类型之数组_01
构造类型--constructed type.至于定义,笔者就省略了,有兴趣的同学可以百度搜索https://www.baidu.com/.今天我们要说的是c语言中最简单的构造类型--数组(array ...
- C-冒泡排序,选择排序,数组
——构造类型 ->数组 ->一维数组 ->相同类型的一组数据 ->类型修饰符--数组名—[数组的元素个数(必须是整型表达式或者是整型常量,不能是变 ...
- iOS学习笔记---c语言第八天
指针 首先将变量a的地址存放在另一个变量中,比如存放在变量b中,然后通过变量b来间接引用变量a,间接读写变量a的值.用来存放变量地址的变量,就称为"指针变量" int *p=nul ...
- OC基础-第1天
#pragma mark - Day01_01_OC语言的历史(了解) 1) Objective - C 是一门面向对象的高级语言 2) Objective - C 简称 obj - C \ OC ...
- C语言新学备忘_1
#include <stdio.h> //C语言的标准输入 ,输出头文件扩展名为.h的文件称为头文件 //include称为文件包含命令 #include <stdlib.h> ...
- OC之OC与C的比较
1. 从编写.编译.链接的流程. 1). 创建1个.m的源文件. 2). 在这个文件中写上符合OC语法规范的源代码. 3). 编译. a. 预编译: 执行预处理代码. b. 检查语法. c. 生成目标 ...
- 〖C语言学习笔记 〗(二) 数据类型
前言 本文为c语言的学习笔记,很多只是留下来占位的 数据类型 助记:变量就是在内存中挖个坑并给这个坑命名,而数据类型就是挖内存的坑的尺寸 基础类型 整数类型: short int int long i ...
- C语言大总结
C语言大总结 一. C语言基本常识 1.语言由函数组成 2.main是程序入口 3.C语言中不能出现中文或中文字符 (凝视和字符串除外) keyword : C语言提供表示特殊含义的单词 特点 : 1 ...
- 大学C++程序设计教程期末复习重点
第一章 1.cin与count的应用<iostream> 例: cin>>a; cout<<"hello"<<endl; cout& ...
随机推荐
- web worker的介绍和使用
目录 简介 Web Workers的基本概念和使用 Web Workers的分类 worker和main thread之间的数据传输 简介 什么是web worker呢?从名字上就可以看出,web w ...
- 企业级数据大屏设计如何实现,div+html+echarts
大屏是什么? 大屏设计是最近比较流行的概念,一般按照功能来分有几种: 1. 可交互的触摸屏,大多运用在互动教学课程或者报告演示现场,用户可结合交互操作来阐述具体内容.设计师需要对交互形式和传达内容作统 ...
- 4G DTU是什么?
要从任何设备(个人计算机.平板电脑或智能手机)访问Internet,需要DTU或热点.大多数宽带和移动DTU在"4G"或第四代网络系统上运行.虽然互联网连接的许多基本原则与4G D ...
- Python常用组件、命令大总结(持续更新)
Python开发常用组件.命令(干货) 持续更新中-关注公众号"轻松学编程"了解更多. 1.生成6位数字随机验证码 import random import string def ...
- 关于Android Studio中使用jni进行opencv配置开发环境的要素秘诀
使用jni进行opencv开发可以快速地将PC端的opencv代码移植到手机上,但是如何在android studio下进行配置,网上几乎找不到教程,大多都是eclipse下使用mk文件的方法,找不到 ...
- python开发基础(二)运算符以及数据类型之list(列表)
# encoding: utf-8 # module builtins # from (built-in) # by generator 1.147 """ Built- ...
- 手把手教你使用容器服务 TKE 集群审计排查问题
概述 有时候,集群资源莫名被删除或修改,有可能是人为误操作,也有可能是某个应用的 bug 或恶意程序调用 apiserver 接口导致,需要找出 "真凶".这时候,我们需要为集群开 ...
- [.Net Core 3.0+/.Net 5] System.Text.Json中时间格式化
简介 .Net Core 3.0开始全新推出了一个名为System.Text.Json的Json解析库,用于序列化和反序列化Json,此库的设计是为了取代Json.Net(Newtonsoft.Jso ...
- 调度器简介,以及Linux的调度策略(转)
进程是操作系统虚拟出来的概念,用来组织计算机中的任务.但随着进程被赋予越来越多的任务,进程好像有了真实的生命,它从诞生就随着CPU时间执行,直到最终消失.不过,进程的生命都得到了操作系统内核的关照.就 ...
- Python学习笔记5:模块/包
1.模块 模块简单理解就是一组功能的集合. 在Python中,一个文件(.py)就是一个模块,文件名即模块名. 模块的好处是大大提高代码的可维护性,其次,代码不必从零开始.当一个模块编写完毕,就可以被 ...