【C语言笔记】--数据类型、运算符和表达式

请添加图片描述


😎 个人主页@向日葵星-乐葵

👋 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 乐葵 原创

👉 收录于专栏C语言笔记#新手必看

请添加图片描述



🎶前言

通常在学习程序设计语言的初期,要从基本要素入手,逐步掌握语言的各种语法规则,就好比造一幢高楼大厦一样,基础没有打好,就急于往上造,其后果可想而知。所以要做到熟练地使用C语言进行程序设计,需要一个循序渐进的过程。


🎶一、C语言的数据类型


C语言的数据类型包括基本类型构造类型指针类型空类型
(1)基本类型主要为整型字符型浮点型
(2)构造类型则包括数组类型结构体类型共用体类型枚举类型请添加图片描述


🎶二、C语言的常量


1.直接常量

(1)整型常量

整型常量即整数,包括正整数、负整数和零。C语言中,整型常量可以十进制(decimal)八进制(octal) 和*十六进制(hexadecimal)表示。
十进制表示:由数字0-9,正、负号组成,如369,-663等;
八进制表示:以0(数字0)为前缀,其后由数字0-7组成,如0163,036等;八进制数一般是无符号数。如0192、-011都是不合法的八进制常量;
十六进制表示:以0x或0X为前缀,其后由数字0-9和字母A-F(字母大小写均可)组成,如0x12cd,0X6Fa等。十六进制数一般是无符号数
注意
a.在一个整型常量后面加一个字母u或U,认为是unsigned int 型,如246U。
b.在一个整型常量后面加一个字母1或L,认为是long int型,如12L。

(2)实型变量

实型变量的表示方法有两种:小数形式指数形式
①小数形式:由整数部分、小数点和小数部分组成,当整数部分或者小数部分为0时,可以省略不写,但是小数点不可省略。
②指数形式;由尾数部分、字母E或e和指数部分组成,格式为:±尾数E指数。
注意
a.以小数形式表示实数时,必须有小数点,并且小数点的前、后至少一边要有数字。
b.以指数形式表示实数时,字母E(或e)的前后必须有数字,并且指数部分只能是整数。如12.—E3、1.5E、E6都是不正确的实数。
在C语言中,实型常量默认为是double型的实数,如果在数的后面加字母f或F(如1.65f、654.87F),则认为是float型的实数。

(3)字符型常量

字符常量指单个字符,用一对单引号及其括号所括起的字符来表示。如’a’、'B’都是合法的字符常量。在C语言中,学符常量有以下特点
①字符常量只能用单引号括起来,不能用双引号或其它括号。
②字符常量只能是单个字符,不能是字符串。
③字符可以是ASCII字符集中的任意字符。按ASCII码的大小,不同的字符之间存在着次序,以字符的ASCT码值按升序连续排列。如小写字母的ASCII码大于大写字母的ASCII码,大写字母的ASCII码大于数字字符的ASCII码。
使用字符常量时,每个字符在内存中占用一个字节,用于存储它的ASCII码值。所以C语言中的字符常量具有数值特征,可以像整数一样参加运算,此时相当于对字符的ASCII码进行运算。

(4)字符串常量

1.字符串常量是由一对双引号" " 括起来的零个或多个字符序列,如:“HelloWorld” 。
2.字符串中可以使用空格字符、转义字符和其他字符,也可以使用汉字等文字符号。
3.字符串的长度等于该字符串中所包含的有效字符的个数,如“HelloWorld"的长度为10。在字符串中如遇到10’(1\0’是字符串结束符)则认为该字符串结束,如"Hello\0World"的长度为5。如果字符串中有转义字符,则一个转义字符作为一个字符,如’‘HelloWorld\t"的长度为5。可以使用strlen()函数(见6.5.3节)来计算字符串的长度。
注意
字符常量和字符串常量在内存中的存储情况是不同的,如’6’在内存中占1个字节,存储的是其ASCII码,而’6’在内存中占2个字节,一个字节存储’6’,另一个字节存储’\0’。可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量,在C语言中,由于没有提供字符串类型的变量,字符串一般用字符数组来解决。

2.符号常量

在C语言中,可以用一个标识符来表示一个常量,称之为符号变量。符号常量在使用之前必须先定义,其一般形式为:
#define 标识符 常量值
一个#define命令只能定义一个符号常量,若要定义多个符号常量,需使用多个#define命令。
使用符号常量的好处
(1)增加程序的可读性:通过标识符就知道该常量的意思,即见名知义。
(2)提高程序的可维护性:通过符号常量使得修改常量很方便,只需在常量的定义处修改即可。
(3)简化程序代码:通过符号常量可以简化复杂表达式的重复输入。
(4)方便数组的定义:可以将整型符号常量作为数组的长度。


🎶三、C语言的变量

1.变量的定义与使用

(1)变量的定义
定义格式:
类型说明符 变量名表
(2)变量的初始化
需注意:
①对一个变量赋初值之后,该值被存储在分配给该变量的内存空间中。
②不允许对多个未定义的同类型变量连续初始化,如:“int x=y=3;”是不合法的,应写成“intx=3,y=3;”。
③初始化时,一般应使“=”右边表达式的数据类型和“=”左边的变量的类型一致,如果不一致,系统会进行自动赋值转换。
④没有进行初始化的变量,其值是由定义时所使用的存储类型决定的。全局变量和static 型变量的值是0或 ‘\0’,其它存储类型的局部变量的值是未知的。
(3)变量的使用
使用变量时,应该先赋值,后引用。

2.整型变量

整型变量又分为:短整型(short int)、整型(int)、长整型(long int)、无符号短整型(unsigned int)、无符号整型(unsigned short int)和无符号长整型(unsigned long int)六种。
请添加图片描述
(1)各种无符号整数所占的字节数与相应的有符号整数相同。
(2)有符号整数以二进制补码形式储存。
(3)无符号整数以二进制原码形式储存。

3.实型变量

实型变量分为单精度(float型)和双精度(double型)两类。
请添加图片描述
单精度型数据能保留7位有效数字,双精度型数据能保留16位有效数字。且一般在小数点后最多保留6位。

4.字符型变量

字符型变量的值是字符型常量,即用单引号引起来的单个字符。字符型常量的类型说明符是char,其类型说明的格式和命名规则与整型变量相同。字符型常量在内存中只占用一个字节


🎶四、运算符和表达式

1.赋值运算符和赋值表达式

(1)简单赋值运算符
最简单的赋值运算符就是“=”,它的作用是将一个数值赋给一个变量。
如:int a=3;可以简单表示为将3赋值给了a。
(2)复合赋值运算符
在简单赋值运算符前面加上算术运算符就构成了复合赋值运算符。请添加图片描述
(3)赋值表达式
赋值表达式是由赋值运算符将一个变量和一个表达式连接起来的式子组成。它的一般形式为:
变量=表达式
注意
①赋值运算符的左侧必须是一个变量。
②如果“=”左右两边类型不同,系统会按照赋值类型转换的原则将右边的类型
转换成左边的类型。
③赋值表达式的右边也可以是一个赋值表达式。

2.算术运算符和算术表达式

(1)基本的算术运算符
基本算术运算包括加、减、乘、除和求余等运算,其中加、减、乘、除和求余运算均为双目运算符。
注意
①-作为单目运算符使用时,是取负运算,如-3;作为双目运算符使用时,是进行求差运算,如3-4的值为-1。
②在计算a/b时,如果a和b都是整型,则其商也为整型,小数部分被舍去,如3/4的结果为0.4/3的结果为1。如果a和b中有一个是实型,则a和b都转换为double类型,然后相除,结果为double类型,如3.0/2的结果为1.5。
③求余运算要求参与运算的两个运算对象都必须是整型,其结果也是整型。如4%3的结果为1。求余运算结果的符号与第一个操作数符号相同,如-4%3的值为-1,4%-3的值为1。
(2)自增、自减运算符
C语言有两个特殊运算符“++”和“- - ”
①++ 自增运算符,为单目运算符,其功能是使变量的值自加1。自增运算符有两种
使用形式:
a.前缀方式:用于变量前面,如“int a=++x;”它是“先计算,后使用”,即先将x的值自加1,然后将x的值赋给变量a。如int m=++i;则先计算i=i+1,再将计算后的i赋值给m;
b.后缀方式:用于变量后面,如“int a=x++;”它是“先使用,后计算”,即先将×的值赋给变量a,然后再将x的值自加1。如 int m=i++;则将计算前的i赋值给m,再计算i=i+1;
②- -自减运算符,为单目运算符,功能是使变量的值自减1,使用方法和自增运算符相似。
(3)算术运算符的优先级和结合性
单目运算符是右结合的,双目运算符是左结合的。
单目运算符的优先级高于双目运算符,而双目运算符中*、/、%的优先级高于+、-。在优先级相同的情况下,按规定的“结合性”进行处理。

3.逗号运算符和逗号表达式

C语言中逗号“,”也是一种运算符,称为逗号运算符。其功能是把多个表达式连接起来组成一个表达式,称为逗号表达式。逗号表达式的一般形式为:
表达式1,表达式2,…,表达式n
(1)逗号表达式的执行顺序是;从左到右依次计算每个表达式的值,并把最后一个表达式的值作为整个逗号表达式的值。
(2)逗号运算符是双目运算符,其优先级最低,是左结合的。
(3)并非所有出现逗号的地方都为逗号表达式。如在变量说明语句中,以及函数参数表中逗号只是用作各变量之间的分隔符。

4.求字节数运算符

运算符size of用于计算数据类型所占的字节数,它是一个单目运算符,优先级高于双目运算符,其一般格式如下:
(1)sizeof(表达式)或sizeof表达式
(2)sizeof(数据类型名)


🎶五、数据类型转换

1.自动类型转换

请添加图片描述
该图中:
(1)横向箭头表示必定的转换。
(2)纵向箭头表示当经过横向的转换后,进行运算的数据类型仍然不同时进行的转换方式。

2.强制类型转换

强制类型转换是采用强制类型转换运算符将某种数据类型强制转换成指定的数据类
型,其一般形式为
(类型说明符)(表达式)
功能:把表达式的运算结果强制转换成类型说明符指定的类型。


你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!
这些都是c语言小白在学习路上的自我总结,如有错误或不足,可以在下面进行留言!!!

  • 19
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值