C语言的数组基础,C语言基础-数组
一、数组(一维数组)
什么是数组?
数组是一组有序的、类型相同的数据的集合
数组的作用?
处理一些类型相同的数据集合
数组的构成:
元素、下标或索引、数组名
定义:
使用前必须定义
1、存储类型
2、数据类型
3、数组名
4、数组大小
语法:
数据类型 数组名[数组长度] ;
例子:int stuIds[22];
备注:
1、数组名后接一个或多个括在方括号内的表达式,用以指定数组的维数
2、数组长度只能是常量和常量表达式(大于0)
定义数组的特性
所有数组元素具有相同的类型
允许使用变量的地方都可以使用数组元素
取值:也可以使用整型表达式引用数组的元素
数组名[整型表达式]
数组里面的每个元素所占字节数和数组类型一致
初始化:
什么是数组初始化:
数组初始化是在数组定义时给元素赋初值
extern和static数组元素自动初始化为 0 -> extern int a[10];或 static int a[10]; ->代表所有元素值都为0
语法:数据类型 数组名[常量表达式]={值,值…};
例如:int ary[10]={0,1,2,3,4,5,6,7,8,9};
规定:
元素之间用逗号隔开
可以只给部分元素赋值,剩余元素赋0值
给全部元素赋值时,可以不说明元素的个数。例如:int ary[]={0,1,2,3,4,5,6,7,8,9};
二、二维数组
定义(声明):
数据类型 数组名[常量表达式1][常量表达式2];
例如:int temp[4][3];
初始化:
inta[3][4]=
{
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11,12}
};
inta[3][4]={
1, 2, 3, 4,
5, 6, 7, 8,
9, 10, 11, 12};
inta[3][4]={
1, 2, 3, 4,
5, 6, 7, 8,
9,10 , 0, 0};
语法:
数组名[行下标][列下标]
三、字符数组
字符串常量
printf("Hello World!!!");
其中Hello World!!!就是字符串数组
区别->字符常量
例如:'a'
备注:
1、符号不同,字符常量用单引号,字符串常量用双引号
2、长度不同,字符常量有且只有一个字节,字符串常量可多个字节
3、字符串常量一'\0'结尾,例如:"Hello World!!!"之后隐藏了一个'\0'
(ps:'\0'称作结束标志)
字符数组 == 字符串变量
注意:
不能对数组做整体化赋值,只能在初始化的时候进行。
==的意义是:判断两个数组的地址值是否相等
strcmp的意义是:判断两个字符数组的值是否相等
例外:字符串可以通过系统函数进行整体操作
四、字符串的整体I/O操作
字符串的输入、输出、合并、修改、比较、转换、复制、搜索几类。
头文件 string.h
gets(ps:scanf)
功能:通过标准输入所获得的字符串
函数说明:char *gets(char *buffer);
其中,返回值:成功时返回输出缓冲区首地址,否则返回NULL
puts(ps:printf)
功能:用于在标准输出设备上显示字符串
函数说明:int puts(const char *string);
sprintf
功能:将其他数据类型转换成字符串类型并输出到指定字符串中.
函数说明:int sprintf( char *buffer, const char*format [, argument] ... );
注意:
以上几种字符串处理函数,应当再次强调:库函数并非C语言本身的组成部分,而是C编译系统为方便用户使用而提供的公共函数。不同的编译系统提供的函数数量和函数名、函数功能都不尽相同,使用时要小心,必要时查一下库函数手册。
字符串拷贝函数strcpy格式:
strcpy (字符数组名1,字符数组名2) 功能:把字符数组2中的字符串拷贝到字符数组1中。串结束标志“”也一同拷贝。字符数名2,
也可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。
字符串比较函数strcmp格式:
strcmp(字符数组名1,字符数组名2) 功能:按照ASCII码顺序比较两个数组中的字符串,并由函数返回值返回比较结果。
字符串1=字符串2,返回值 =0;
字符串1〉字符串2,返回值 〉0;
字符串1〈字符串2,返回值〈0。
假设计算机指定数组score中的元素从地址为1000的地方开始存放。那么,存放一个元素,计算机需要给该数组多少空间呢?
由于每个元素的数据类型为int,而一般来说,int占用4个字节,所以计算机需要为每一个元素分配4个字节的存储空间。如下图所示:元素score[0]占用了编号为1000, 1001, 1002, 1003共4个字节的内存空间。score[1]占用1004 - 1007号内存空间。其余元素依此类推。
当声明数组 int score[10]; 时,计算机就为数组预留10×4=40字节的存储空间,正式的说法是分配40字节的存储空间,此时空间里面没有存放东西。对于数组中的各元素,它们的存储空间是连续的,没有间断。因此,如果知道了某个元素的存放地址,就能准确获取其它元素的存放地址。
下图是对数组声明的一些解说:
C语言的数组基础,C语言基础-数组相关推荐
- c语言数组与指针的基础知识,C语言学习笔记之数组与指针的关系
首先,大家先需知道一个关于基类型的概念 基类型:组成一个新类型的基础类型 这句话是什么意思呢?举个例子: int a[3] = {1,2,3}; 上面是由三个int类型的数组成一个新的类型也就是数组, ...
- C语言 数组指针 - C语言零基础入门教程
目录 一.简介 1.数组 2.指针 3.指针和数组区别 二.数组指针 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.简介 1.数组 ...
- C语言 指针和数组区别 - C语言零基础入门教程
目录 一.前言 二.指针和数组区别 1.通过 sizeof 获取大小 a.计算数组大小 b.计算指针大小 2.指针和数组赋值方式不同 a.指针赋值 b.数组赋值 3.指针是指针变量,数组是指针常量 三 ...
- C语言 二维数组遍历 - C语言零基础入门教程
目录 一.计算一维数组长度 二.计算二维数组长度 1.二维数组行数 2.二维数组列数 3.二维数组的元素个数 = 二维数组行数 * 二维数组列数 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C ...
- C语言 数组遍历 - C语言零基础入门教程
目录 一.数组遍历原理 二.数组遍历实战 1.遍历数组查询数组中的元素 2.遍历数组修改数组中的元素 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语 ...
- 基础C语言知识串串香10☞数组字符串结构体联合体枚举
五.数组&字符串&结构体&联合体&枚举 5.1.c语言中定义一个字符串:char a[6]={'l','i','n','u','x','\0'};'\0'的字符编码为0 ...
- 【Python语言基础】——Python NumPy 数组副本 vs 视图
Python语言基础--Python NumPy 数组副本 vs 视图 文章目录 Python语言基础--Python NumPy 数组副本 vs 视图 一.Python NumPy 数组副本 vs ...
- java 数组 字符串 编程_Java语言基础知识之字符串数组
Java语言基础知识之字符串数组 java语言中,数组是一种最简单的复合数据类型.数组是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素.数组有 ...
- C语言编程基础-10函数形参数组做形参文件操作
函数形参 被调函数的形参在被调用时临时创建并使用实参对其赋值,故直接修改形参(特殊形式的形参如指针,数组除外)本身只会影响到被调函数内部; 形式参数是在函数调用发生时临时创建出来的,在函数调用结束时又 ...
- C语言基础之10:数组和指针
Tips1: 关键字:static 运算符:&.*(一元) 如何创建并初始化数组 指针(在已学过的基础上). 指针和数组的关系 编写处理数组的函数 二维数组 Tips2: 人们通常借助计算机完 ...
最新文章
- 爬虫之requests模块介绍
- SQL关闭自增长列标识:SET IDENTITY_INSERT
- BigData之Hive beeline:beeline的简介、使用方法之详细攻略
- mysql function_MySQL里event_ scheduler导致复制中断的故障分析-爱可生
- ROS(12):双足机器人开发调研
- LeetCode 18. 四数之和 思考分析(双指针解)
- Windows Win7建立wifi热点,手机共享WIFI上网
- RHEL 8 - 安装 webconsole
- 【Mybatis笔记】mybatis实现mysql增删改查
- Linux群控链接USB手机个数,群控系统能做到同时控制上百台手机吗?教你如何群控手机...
- python调用鼠标驱动_python+selenium 鼠标事件操作方法
- 软件测试工程师自我介绍范文_软件测试工程师面试英文自我介绍范文
- Jar包常见的反编译工具介绍与使用
- 《Web安全之深度学习实战》笔记:第六章 垃圾邮件识别
- socket传输案例
- GEE基础-大影像下载
- 2021-06-21 12点 程序外生活 - 中国A50指数 机器预测学习跟踪记录 - 周六反弹失败,等待跌完,继续等待4小时第一个底分型出现。周月线持续跌势。
- 11、Vue的生命周期
- 双指数边缘平滑滤波器用于磨皮算法的尝试。
- 体积光 GodRay