c语言笔记.docx
- 文档编号:12642299
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:18
- 大小:218.67KB
c语言笔记.docx
《c语言笔记.docx》由会员分享,可在线阅读,更多相关《c语言笔记.docx(18页珍藏版)》请在冰豆网上搜索。
c语言笔记
常量:
在程序执行过程中,其值不发生改变的量称为常量。
在程序中,常量可以不经说明而直接使用。
常量分类:
直接常量:
(字面常量/字面值)
整形常量:
12U,0L,-3.180,-163,65535,06,0xFF
实型常量:
4.6F,-2.23
字符常量:
a,b
字符串常量:
“helloworld”
符号常量:
也称名字常量
符号常量定义成宏的形式:
#define符号常量值
习惯上符号常量使用大写字母
示例:
#include
#definePRICE30
intmain(void)
{
intnum=10;
inttotal=0;
total=num*PRICE;
printf(“total=%d\n”,total);
return0;
}
整形常量:
180,-163,65535,06,0Xff
浮点常量:
123.4
字符常量:
‘x’(书写时将一个字符括在单引号中)字符常量时一个整数,如:
字符‘0’的值是48,可查ASCII码表。
字符常量只能用单引号引起来,不能用双引号或其他括号;字符常量只能是单个字符,不能是多个字符;字符可以是字符集中的任意字符;‘9’与9是不同的。
字符常量的特点
字符常量只能用单引号引起来,不能用双引号或者其他括号。
字符常量只能是单个字符,不能是多个字符。
字符可以是字符集中的任意字符。
例如:
‘9’和9是不同的。
转义字符:
转义字符是一种特殊的字符常量;
以反斜线“\“开头,后面跟一个或几个字符;
具有特定的意义,不同于字符原有的意义。
例如:
‘\n’代表换行‘\t’代表制表符,跳到下一个制表位置‘\r’代表回车
‘\\’表示反斜线符‘\“’表示双引号
字符串常量
1.字符串常量是由一对双引号括起的字符序列;
2.字符串常量与字符常量的区别:
字符常量由单引号括起,字符串常量由双引号括起。
3.字符常量只能是单个字符,字符串常量可以包含一个或多个字符。
4.可以把一个字符常赋值给一个字符变量,但不可以把一个字符串常量赋值给一个字符变量。
5.C语言中并没有相应的字符串常量,我们用一个字符数组来存放一个字符串常量。
6.字符常量占一个字节的内存空间。
7.字符串常量所占的字节数等于字符串中字节数+1;增加的这个字节用于存放字符’\0’(起ASCII码也为0),该字符是字符串结束的标志。
字符变量的应用:
字符变量用于存储字符常量,也就是单个字符。
例如:
charc=‘\n’,singleCharacter=‘a’;
字符变量输出格式为%c
例如:
#include
intmain()
{
charc;
printf(“1+1=?
\n”);
printf(“a1\t”);
printf(“b2\t”);
printf(“c3\t”);
sacnf(“%c”,c);
printf(“youransweris:
%c\n”,c);
return0;
}
实型常量:
实型常量也称为实数或者浮点数,有两种格式:
十进制小数形式、指数形式。
十进制小数形式必须有小数点,0.6,39.0,-9.9
指数形式由十进制小数+阶码标志(e/E)+阶码(带符号整数)组成:
2.3E6=2.3*106
3.5E-3=3.5*10-3
实型变量:
分为:
单精度(float)、双精度(double)、长双精度(longdouble)
实型数据的长度、有效位、取值范围
类型说明
比特数(字节数)
有效数字
数的范围
Float
32(4)
6~7
10-37~1038
Double
64(8)
15~16
10-307~10308
Longdouble
128(16)
18~19
10-4931~104932
枚举类型:
enum
用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型。
枚举,就是将变量的值一一列出来,变量的值仅限于列举出来的值的范围内。
例如:
用枚举类型表示一周七天(星期几);一家水果店出售3种水果,用枚举类型分别表示水果代码:
苹果1,橘子2,香蕉3.
标准输入函数:
scanf
scarf函数从标准输入(键盘)读取信息,按照格式描述把读入的信息转换为指定数据类型的数据,并把这些数据赋给指定的程序变量。
一般形式为:
scanf(格式控制字符串,地址列表)
地址列表中,取地址运算符&:
&a
&用于指明变量在内存中的位置:
格式字符串
参数变量的类型
要求的实际输入
%d
Int
十进制数字序列
%ld
Long
十进制数字序列
%f
Float
十进制数,可以有小数点及指数部分
%lf
Double
十进制数,可以有小数点及指数部分
标准输出函数:
printf
将一些信息按照指定的格式送到标准输出(显示器)
printf(格式控制字符串,输出列表)
在输出列表中,将按指定的格式显示列表中变量的值
格式字符串
说明
%d
将参数按整数形式转换输出,对应参数应是int类型
%ld
将参数按照长整数形式转换输出,对应参数应是long类型
%c
输出一个字符,对应参数应该是一个字符
%s
输出一个字符串,对应参数应该是一个字符串
%f
将参数按带小数点形式输出,对应参数应该是double类型,默认情况下精确到6位小数
变量
在程序运行过程中,其值可以改变的量。
C语言规定,变量必须先声明后使用,声明语句由数据类型和其后的变量表组成:
数据类型<变量表>;
变量表是由一个或者多个标识符名,标识符名是由字母和数字组成的序列,但第一个字母必须为字母或下划线‘_‘。
例如:
abc,a1,prog_to
inta,b,/*a,b被声明为整型变量*/
floatminValue;/*声明一个浮点型最小变量*/(注释)
变量的初始化:
声明变量的时候,可以同时对变量进行初始化
intsum=0;/*将0赋值给sum*/
intarea=0,length=0;
如果初始值相同,可用下面的方法进行初始化:
intarea=length=0;
一个函数中的变量在使用前如果没有被初始化或赋值,那么它的值是随机的。
整型变量的分类
本型关键字所占位数数值基本范围
基本型int16-32768—32767
长整型long32-2147483648—2147483647
短整型short16-32768—32767
无符号基本型unsignedint160—65535
无符号长整型unsignedlong320—4294967295
无符号短整型unsignedshort160—65535
单精度浮点型float32
双精度浮点型double64-1.7E308~1.7E+308
字符型char8-128—127
C语言没有规定上述类型所占的字节数,在不同的机器或系统上会有区别。
利用sizeof()可求得类型所占的字节数
字节(byte)是数据存储的计量单位,一个字节等于8位二进制数:
1Byte=8bit
自动类型转换:
把表示范围小的类型的值转换到表示范围大的类型的值。
Short>int>long>float>double
表达式和运算符
1.由常量、变量、函数和运算符组合起来的式子称为表达式
2.可以是单个或多个的组合、可以没有运算符:
8、x、3+6、2*a=10
3.表达式具有值和类型:
指计算整个表达式后结果的值和类型
4.运算符表示对数据进行何种操作
5.C语言提供的运算符包括:
赋值运算符,算术运算符,关系运算符,逻辑运算符,位运算符,条件运算符等。
算术运算符:
1.加法运算符“+”:
双目运算符。
如:
a+b
2.减法运算符“—”:
也做单目运算符:
-7
3.乘法运算符“*”:
双目运算符:
6*9
4.除法运算符“/”:
参与运算量若均为整型,那么结果也是整型(取整向0的方向),如:
-5/8,如果其中有一个实型,则结果为双精度,注意除数不能为零,否则程序会发生中断。
5.模运算符“%”:
双目运算符,如果参与运算量都为整型,结果向0的方向取整,如7%3=1.
关系运算符:
>,<,>=,<=,==,!
=
用关系运算符将两个表达式连接起来的式子,称为关系表达式,关系表达式的值是“真”或者“假”,分别用“1”和“0”来表示。
逻辑运算符:
逻辑运算符用来表示日常交流中的“并且“,”或者“,”除非”等思想。
例如又两个命题:
”正在下雨“和”我在屋里“
逻辑与:
&&当两个条件都为真时执行操作
逻辑或:
||当任何一个条件为真时执行操作
逻辑非:
!
对原条件取反,即当原条件为假时执行操作
注意:
在逻辑表达式的求解过程中,并非所有逻辑运算都被执行,只有必须执行下一个逻辑运算符才能求出表达式的值的时候,才执行该运算符。
位运算符:
位运算符用来对二进制位进行操作。
1.按位与:
&
作用1:
对二进制位清0,例如:
22&0的结果是0。
作用2:
提取需要的一位或多位(二进制数),如:
0x16&0x0f
2.按位或:
|
作用:
设置指定的位为1,例如:
将0x16的低四位设置为1111
按位异或:
^使指定的位翻转,把要翻转的位设置为1,再与单元相异或,例如:
0x16^0x0f是将0x16的低四位进行翻转,即1变成0,0变成1。
3.相位取反:
~把某个单元的所有位翻转,如~0x16
左移:
<<扩大一倍(x2),注意左移有可能溢出
右移:
>>缩小一倍(/2)
条件运算符:
条件运算符是一个三目运算符
格式:
表达式1?
表达式2:
表达式3
例如:
max=a>b?
a:
b
运算符优先级:
()、sizeof、++、-->!
(非)>算术运算符>关系运算符>&&(与)>||(或)>赋值运算符
嵌套if语句
当if语句中又包含了一个或多个符if语句时,就构成了if语句嵌套的情形。
If(条件1)
{
//代码1
}
elseIf(条件2)
{
//代码2
}
else
{
//代码3
}
在嵌套内的if语句可能又是if-else型的,这将会出现多个if和多个else重叠的情况,此时需要特别注意if和else配对的情况。
配对原则是,else语句总是和它前面最近的未配对的if配对。
Switch语句
C语言还提供了另外一种用于多分支选择的switch语句,它判断表达式的值与常量表达式列表中的哪个值相匹配,就会执行与该值相关的语句。
Switch(表达式)
{
case常量1:
语句1;
break;
case常量2:
语句2;
break;
………
default:
语句;
}
1.switch后的表达式只能是整型或字符型。
2.case后表达式的值不能相同。
3.case后允许多条件语句,不需要打括号。
4.如果不添加break语句,需要特别注意执行顺序。
5.case和default子句的先后顺序可以自行变动,但default后要加break。
6.default子句可以省略。
Switch与if对比:
相同点:
都是用来处理多分支条件的结构。
不同点:
1.switch:
等值条件判断——条件是有限个的时候。
2.if:
判断某个连续区间时的情况。
总结:
1.表达式是操作数和运算符的集合。
2.赋值运算符执行顺序是从右到左,优先级最低。
3.sizeof运算符用来得到某一数据类型占用的字节。
4.关系表达式的计算结果为逻辑真(非0)和逻辑假(0).
5.处理条件分支判断的常用结构有3种:
1)if—else结构
2)if—else—else结构
3)switch结构
while循环:
inti=1;
while(i<=1000)
{
prinf(“语句1”);
i++;
}
循环三要素:
1)循环变量的初值。
2)循环变量的判断。
3)循环变量的更新。
特点:
先判断后执行。
循环变量:
控制循环的次数。
1.使用循环实现三次密码输入错误推出循环:
do—while循环:
基本语法:
do
{
循环操作
}while(循环条件);
特点:
先执行再判断
1.先执行一遍循环操作
2.符合条件,循环继续执行
3.否则退出循环
while与do—while的区别
1.执行顺序不同
2.初始情况下满足循环条件时:
1)while循环一次都不会执行;
2)do—while循环不管任何情况都至少执行一次;
for循环:
语法:
for(表达式1;表达式2;表达式3)
{
语句;
}
表达式1:
通常是为循环变量赋初值,可省略。
例如:
i=0或者count=i。
表达式2:
循环条件,是否继续执行循环。
可省略。
例如:
i<10.
表达式3:
更新循环变量的值。
可省略。
例如:
i++。
分号:
用来分隔三个表达式,不可省略。
for(;;)、while
(1)是死循环。
break语句:
跳出循环,执行循环之后的语句。
continue语句:
跳过本次循环,继续下次循环。
对比:
使用场合:
break可用于switch结构和循环结构中。
continue只能用于循环结构。
作用:
break语句终止某个循环,程序跳转到循环块外的下一条语句。
continue跳出本次循环,进入下一次循环。
技巧:
取个位:
%10
取十位:
%100
取百位:
%1000
取千位:
%10000
C语言中提供了很多整数类型(整型),主要区别在于它们取值范围的大小。
int代表有符号的整数,也就是说,用int声明的变量可以是正数也可以是负数,也可以是零,但是只能是整数。
比如:
int a = 3; int b = 0; int c = -5;
以上这些都是合法的。
int的取值范围因机器而异,一般而言,在较旧的PC上,int值在内存中一般是按2个字节(16位)进行存储的,在较新的PC以及工作站和大型机上,int值在内存中一般是按照4个字节(32位)进行存储的。
C语言中将基本数据类型划分为signed(有符号)和unsigned(无符号)两大类。
例如,初始化变量int a = -3;其实它等价于signed int a = -3;关键字signed在这里可以省略,因为C语言默认就是有符号类型的,如果要定义无符号类型的数(也就是0和正整数)可以这样定义,unsigned int b = 5;
为了说明清楚signed和unsigned的区别,首先需要了解数据在内存中是如何存储的,在计算机中所有的数据都是按照二进制进行存储的(以下假设在字长为2个字节的机器上来表示)。
举个例子来说,unsigned int a = 1; 变量a在内存中就是以00000000 00000001来存储的,用图表的形式表示:
因为这里是unsigned int,它是无符号整型,所以的它的16位全部用来表示数据。
int b = -1;
这里情况就稍微有点复杂了,注意数字1和-1在内存中的存储是完全不一样的,请看,
在计算机中,整数是以原码的形式存储的,而负数是以补码的形式存储的,原码大家都知道也就是它对应的二进制码,那什么是补码呢,就是原码的反码加1,反码就是原码的各位取反,例如-1的补码是:
首先1的原码是 00000000 00000001
其次取它的反码是 11111111 11111110
最后在其反码的基础上加上1 11111111 11111111
得到-1的补码是,11111111 11111111
用图表的形式表示:
从上图中可以看出,int用15位来表示一个数字,第1位被符号位占用了,其实大家应该不难看出在数学中-1是负数中最大的整数,所以这里看到它的各个位都置1,对应于二进制来讲就是最大的数了,计算机就是按照符号位来识别该数是正是负,所以第一位只起到标识的作用并不作为数据位来使用,而其余的15位才是真正的数据位。
以补码的形式来存储有个好处那就是计算机将负数的运算当作加法来处理了。
那么将一个有符号的数赋给一个无符号的数会发现一个很有趣的现象,比如:
unsigned int a;
int b = -1;
a = b;
printf("a=%u",a);
输出a=65535,这个结果是怎么出来的呢?
其实很简单,b=-1,根据上图-1在计算机中的数据位是1111111 11111111,注意是数据位,是要去掉符号位的,所以是15位,a是无符号类型的整数,将b赋给a,自然a就是1111111 11111111,也是15位第一位补0,转换成十进制就是65535,它也是unsigned int范围的最大上限(0~65535 216-1),-1是最大的负整数转换成正整数当然也是最大了,这个应该很好理解了。
基本数据类型总结:
基本数据类型由11个关键字组成:
int、long、short、unsigned、char、float、double、signed、_Bool、_Complex和_Imaginary。
有符号整型:
有符号整型可用于表示正整数和负整数。
int——系统给定的基本整数类型。
C语言规定int类型不小于16位。
short或shortint——最大的short类型整数小于或等于最大的int类型整数,C语言规定short类型至少占16个字符。
long或longint——该类型可表示的整数大于或等于最大的int类型整数,C语言规定long类型至少占32位。
longlong或longlongint——该类型可表示的整数大于或等于最大的long类型整数,longlong类型至少占64位。
一般而言,long类型占用的内存比short类型大,int类型的宽度要么和long类型相同,要么和short类型相同。
无符号整型:
无符号整型只能用于表示零和正整数,因此无符号整型可表示的正整数比有符号整型的大。
在整数类型前加上关键字unsigned表明该类型是无符号整型:
unsignedint、unsignedlong、unsignedshort。
单独的unsigned相当于unsignedint。
字符类型:
可打印出来的符号(如A、&和+)都是字符,根据定义,char类型表示一个字符要占用1个字节内存,处于历史原因,1字节通常是8位,但是如果要表示基本字符集也可以是16位或更大。
char——字符类型的关键字,有些编译器使用有符号的char,而有些则使用无符号的char,在需要时,可在char前面加上关键字signed或unsigned来指明具体使用哪一种类型。
布尔类型:
布尔值表示true和false。
C语言用1表示true,0表示false。
_Bool——布尔值的关键字。
布尔值类型是无符号int整型,所占用的空间只要能存储0或1即可。
实浮点类型:
实浮点类型可表示正浮点数和负浮点数。
float——系统的基本浮点类型,可精确表示至少6位有效数字。
double——储存浮点数的范围(可能)更大,能表示比float类型更多的有效数字(至少10位,通常会更多)和更大的指数。
longlong——储存浮点数的范围(可能)比double更大,能表示比double更多的有效数字和更大的指数。
复数和虚数浮点数:
虚数类型是可选的类型。
复数的实部和虚部类型都基于实浮点类型来构成:
float_Complex
double_Complex
longdouble_Complex
float_Imaginary
double_Imaginary
longlong_Imaginary
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 笔记
![提示](https://static.bdocx.com/images/bang_tan.gif)