注:初学C语言,做的上课笔记。(还写不了任何代码)
一.初识C语言
1.什么是c语言
2.运行C语言程序的步骤
二.数据类型
1.整形
2.浮点型
3.字符型
三.标识符与关键字,常量,变量
1.标识符与关键字
2.常量
3.变量
四.初识运算符和表达式
1.算术
2.关系
3.逻辑
4.位
5.自增自减
6.赋值
7.逗号
8.条件
9.求字节数
10.相生相成
一初识C语言
1.什么是C语言
C语言是一门面向过程、抽象化的通用程序设计语言。C语言具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点。
2.运行C语言程序的步骤
1.编辑2.编译3.链接4.运行
二.数据类型
1.整型
整形类型:整形(int)、无符号整型(unsigned int)、短整型(short)、无符号短整型(unsigned short)、长整型(long)、无符号长整形(unsigned long).
2.浮点型
实数的指数形式称为浮点数,浮点数类型包括float(单精度浮点型)、double(双精度浮点型)、long double(长双精度浮点型)。
表示方法:十进制小数形式、指数形式
3.字符型
字符类型保存的是ASCII码表中的字符,占用一个字节。
在表示一个字符的时候,可以使用' '将字符括起来的形式,也可以直接使用ASCII中的编码值。
三.标识符与关键字,常量,变量
1.标识符与关键字
标识符是有效字符序列,是一个对象的名字。用于标识用户自己定义的变量、符号变量、函数名、数组名、类型名等。
标识符命名规则:
-
只能由26个字母大小写,数字0-9,下划线组成(不能有空格)
-
不能由数字开头
-
不能使用关键字和保留字,但是能包含关键字和保留字
-
严格区分大小写
关键字又叫保留字。是C语言预先规定好的字符序列,具有特殊的含义和用法。ANSIC中有32个关键字。
2.常量
常量是在程序运行过程中不能改变的量,可直接书写。
常量包括整数常量、浮点数常量、字符常量。
——整数常量:
十进制整数(直接写)、八进制整数(以0开头)、十六进制整数(以0x开头)、长整型(后加L/l)、无符号类型整数(后加U/u)。
——浮点数常量(必须以十进制的形式出现):
1.小数形式(小数点不可省)
2.指数形式(十进制数+E/e+十进制整数)
——字符常量:
1.普通字符常量(英文单引号引起来的字符,如'A')
2.转移字符常量(英文单引号引起来,反斜杠开头。如:'\101'、'\\'
3.变量
变量是在程序运行过程中其值可以改变的量。变量的名称必须用标识符来标识。
变量必须先定义,后使用。
四.初识运算符和表达式
1.算数
运算符:*(乘法运算符)、/(除法运算符)、%(求余运算符)、+(加法运算符)、-(减法运算符)
算术表达式:使用算术运算符和括号将运算量连接起来的式子.
优先级:()→ *、/、% → +、-
结合性:从左至右
2.关系
运算符:<(小于)<u></u>、>(大于)、<=(小于等于)、>=(大于等于)、==(等于)、1=(不等于)
关系表达式:用关系运算符连接的两个表达式构成。关系运算符实际上就是比较运算符。
优先级:(<,<=,>=,>)高于(==,!=)
结合性:自左至右
3.逻辑
运算符:!(逻辑“非”)、&&(逻辑“与”)、||(逻辑“或”)
逻辑表达式:用逻辑运算符连接两个表达式构成。参与逻辑运算的操作数叫做逻辑量。逻辑量可以是整形、实型、字符型和指针型、等多种类型。
优先级:! > &&>||
结合性:自左至右;
4.位
运算符:&(按位与)、| (按位或)、^(按位异或)、~(按位取反)、<<(左移)、>>(右移)
位运算是对整形数据进行的运算,而且符号位需参与运算。位运算主要用于编写系统软件,完成汇编语言能够完成的一些功能。
按位与:将两个运算量对应的二进制逐一按位进行逻辑与运算。每一位二进制数都要参与运算,包括符号位。
按位或:将两个运算量对应的二进制逐一按位进行逻辑或运算。每一位二进制数都要参与运算,包括符号位。
按位异或:将两个运算量对应的二进制逐一按位进行逻辑或运算。每一位二进制数都要参与运算,包括符号位。异或运算的规则:相异为真,相同为假
按位取反:将运算量的每个二进制位逐一取反。每一位二进制数都要参与运算,包括符号位。
左移:需要两个运算量参与,且两个都必须是整数。如a<<n,其意义是将a按照二进制位向左移动n位,变量a二进制的最高位n位舍弃,最低的n位用0补齐。
右移:右移一位时,最低位舍弃。最高位补齐的数值需要根据运算量的类型决定。如果运算量是一个有符号整数则补其符号位,如果是无符号的整数则最高位补0。
5.自增自减
++i, --i 在使用i之前,使用i的值加/减1,先增减、后运算
i++, i-- 在使用i之后,使用i的值加/减1,先运算、后增减
结合性:自右至左
6.赋值
赋值运算符:"="
[变量]=[表达式];
优先级:!>算术>关系>&&和||>赋值
结合性:自右至左
复合赋值运算符一般格式:表达式1 op=表达式2
等价于:表达式1=表达式 op (表达式2)
优先级:与=是同一级
结合性:自右至左;
7.逗号
逗号运算符:,
作用:将几个表达式隔开并以此计算。
[表达式1], [表达式2],……[表达式n]
优先级:最低
结合性:自右至左
整个表达式的值:最后一个表达式的值
8.条件
条件运算符: ?:
作用:判断一个逻辑表达式的结果,如果为真则指定执行某个表达式,如果为假则指定执行另外的表达式。
优先级:逻辑>条件>赋值
结合性:自右至左
表达式1?表达式2:表达式3
如果表达式1的值为真,则以表达式2 的值作为整个条件表达式的值,否则以表达式3的值作为整个条件表达式的值
9.求字节数
sizeof()运算符是一个单目运算符,用于计算一个某种类型的运算量所占用的字节数。
sizeof(变量名);或sizeof 变量名;
10.相生相成
自动类型转换:赋值转换,运算转换
浮点型赋值给整型,结果将舍弃浮点小数部分。
整型赋值给浮点数,数值不会发生变化,结果以浮点数的方式存在。
字符型赋值给整型,数值不会发生改变,但以整形的方式存储,内存空间变大。
整型赋值给字符型,只把整型变量低8位复制给字符型变量。
双精度浮点数赋值给单精度浮点数,有效位会减少,丢失的部分四舍五入。
不同类型数据在进行混合运算时,要将数据转化为同一类型,然后进行运算。转换的过程是C语言编译器自动进行的。
——转化会按数据占用字节数增加的方向转换;浮点数运算都是按照双精度进行的,float类型的变量会先转化成double类型再进行计算。
char,short→int→unsigned→long→double←float
强制类型转换是由程序员通过类型说明符实现的,通过强制类型转换可以将一种类型的变量强制转化为另一种类型。 (类型说明符)[表达式]
类型说明符和表达式都必须加括号,如果是单个变量则可不加。
无论是强制类型转换还是自动类型转换,都不改变其原变量的数据类型。即对一个变量进行强制转换后得到的一个新类型的数据,原来的变量类型是不变的。