C语言学习笔记(五)- 数组、操作符及C语言中的关键字

文章介绍了数组的概念,作为一组有序数据集合,数组用于处理大量具有相同类型的数据。定义一维数组的一般形式是`类型符数组名[常量表达式]`,并强调数组下标从0开始。此外,文章还提及了运算符的优先级和C语言中的关键字。
摘要由CSDN通过智能技术生成

数组

数组的定义

对于有些需要处理的数据,只用简单的数据类型是不够的,难以反映出数据的特点,也难以有效地进行处理。例如,一个班有30个学生,每个学生有一个成绩。那么如何表示这些成绩呢?可以用30个float型变量s1,s2,s3,…,s30。但是这里存在着两个问题:一是烦琐,要定义30个简单变量,如果有1000名学生怎么办呢?二是没有反映出这些数据的内在联系,实际上这些数据是同一个班级、同一门课程的成绩,它们具有相同的属性。
既然它们都是同一类性质的数据,就可以用同一个名字(如s)来代表它们,而在名字的右下角加一个数字来表示这是第几名学生的成绩。这个右下角的数字称为下标(subscript)。一批具有同名的同属性的数据就组成一个数组(array),s就是数组名。
由此可知:
(1) 数组是一组有序数据的集合。数组中各数据的排列是有一定规律的,下标代表数据在数组中的序号。
(2) 用一个数组名和下标来唯一地确定数组中的元素。
(3) 数组中的每一个元素都属于同一个数据类型。不能把不同类型的数据放在同一个数组中。

如何定义一维数组

要使用数组,必须在程序中先定义数组,即通知计算机:由哪些数据组成数组,数组中有多少元素,属于哪个数据类型。否则计算机不会自动地把一批数据作为数据处理。
下面是对数组的定义:

int a[10];     //它定义了一个整型数组,数组名为a,此数组中有10个整型元素

定义一维数组的一般形式为
类型符 数组名[常量表达式];
说明:
(1)数组名的命名规则和变量名相同,遵循标识符命名规则。
(2)在定义数组时,需要指定数组中元素的个数,方括号中的常量表达式用来表示元素的个数,即数组长度。例如,指定a[10],表示a数组中有10个元素。注意,下标是从0开始的,这10个元素是:a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]。需要注意的是,按上面的定义,不存在数组元素a[10]。
(3)常量表达式中可以包括常量和符合常量,如“int a[3+5];”是合法的。不能包含变量,如“int a[n];”是不合法的。也就是说,C语言不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。例如,下面这样定义数组是不行的:

int n;
scanf("%d",&n);    //企图在程序中临时输入数组的大小
int a[n];

经过上面的定义,在内存中划出一片存储空间(如图),存放了一个有10个整型元素的数组。可以看到,用一个“int a[10];”,就相当定义了10个简单的整型变量。
在这里插入图片描述

操作符

操作符1
操作符2

说明
(1)同一优先级的运算符,运算次序由结合方向决定。例如 * 和 / 具有相同的优先级别,其结合方向为自左至右,因此 3 *5 / 4 的运算次序是先乘后除。- 和 ++ 为同一优先级,结合方向为自右至左,因此 - i + + 相当于 -(i++)。
(2)不同的运算符要求有不同的运算对象个数,如 +(加) 和 -(减) 为双目运算符,要求在运算符两侧各有一个运算对象(如3+5、8-3等)。而 ++ 和 -(负号)运算符是单目运算符,只能在运算符的一侧出现一个运算对象(如 -a、i++、–i、(float)i、sizeof(int)、 *p等 )。条件运算符是C语言中唯一的三目运算符,如 x ? a : b。
(3)从上表中可以大致归纳出各类运算符的优先级:
初等运算符 > 单目运算符 > 算术运算符(先乘除后加减) > 关系运算符 > 逻辑运算符(不包括!) > 条件运算符 > 赋值运算符 > 逗号运算符
初等运算符优先级最高,逗号运算符最低。位运算符的优先级比较分散(有的在算术运算符之前(如~),有的在关系运算符之前(如 << 和 >> ),有的在关系运算符之后(如 & 、^、|))。

C语言中的关键字

auto;       break;      case;     char;      const;
continue;   default;    do;       double;    else;
enum;       extern;     float;    for;       goto;
if;         inline;     int;      long;      register;
restrict;   return;     short;    signed;    sizeof;
static;     struct;     switch;   typedef;   union;
unsigned;   void;       volatile; while;     _bool;
_Complex;   _Imaginary;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lantian313

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值