《2022年c语言学习笔记 .pdf》由会员分享,可在线阅读,更多相关《2022年c语言学习笔记 .pdf(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、c+学习笔记 ( 关系运算符 ) 原创 2006-01-29 16:14:50 | 发表者 : 51f C+ 提供 6 种关系运算符,用于数值之间的比较, 表达式的值或为 1 (表示 true ),或为 0(表示 false )运算符名字实例= = 等于5 = = 5 / 得出 1 ! = 不等于5 != 5 / 得出 0 小于5 5.5 / 得出 1 = 小于或等于5 大于5 5.5 / 得出 0 = 大于或等于6.3 = 5 / 得出 1 应该注意: = 运算符不能写成 = ,= 是无效的运算符。关系运算符的操作数应当是一个数值,字符是有效的操作数,因为它们是用数值来表示的。例如(假定采用
2、ASCII 编码): A F / 得出 1 ( 它等价于 65 70) 字符串不应当用关系运算符比较,因为被比较的不是字符串的内容本身,而是字符串的地址。例如:HELLO 0 xa1 的结果是 a 小于0 xa1 。因为 a 是符号整数,而 0 xa1是无符号整数。给a 赋值后其实是小于0 的标签: 私房菜学习笔记精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 16 页 - - - - - - - - - - c+学习笔记 ( 自增、自减运算符 ) 原创 2006-01-29 15:30:19
3、 | 发表者 : 51f是自增运算符, 自减运算符,这两个运算符都是单目运算符,且功能相近,都是将数值变量的值加1 或减 1,用户只能将这类操作符应用于变量而不能应用于常量。要替代下列代码valuel=valuel+1;可使用+valuel;或valuel+;这里前一种方式称为前缀方式, 后一种称为后缀方式, 其目的都是使 valuel加 1。二者的区别是:前缀式先将操作数增1(或减 1),然后取操作数的新值参与表达式的运算。 后缀是先将操作数增1(或减 1)之前的值参与表达式的运算,到表达式的值被引用之后再做加1(或减 1)假定变量 valuel已预定义 : int valuel =5; 运
4、算符名字实例+ + 自加(前缀) +valuel + 10 / 得出 16 ,valuel变为 6 + + 自加(后缀) valuel+ + 10 / 得出 15 ,valuel变为 6 - - 自减(前缀) -valuel + 10 / 得出 14 ,valuel变为 4 - - 自减(后缀) valuel- + 10 / 得出 15 ,valuel变为 4 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 16 页 - - - - - - - - - - 标签: 学习笔记c+学习笔记 (c+
5、运算符 2)原创 2006-01-29 15:10:06 | 发表者 : 51f在进行除运算时,需要注意右操作数,即除数应为非零值,否则就会产生浮点运算错误。编程时,我们通常用if 语句判别除数是否为0,例如:if (a != 0) / 只有 a 不等于 0 时才执行下面的操作c = b / a; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 16 页 - - - - - - - - - - * 同时需要注意的是:加法和乘法运算有可能超过计算机能表示的最大数,产生溢出。如:1.e307 *
6、1.e307则会产生一个不确定数, 即计算机不能表示的数。计算机表示的常用数据类型的取值范围可以见下表。类型最小值最大值signed char -128 +127 unsigned char 0 +255 signed short -32768 +32767 unsigned short 0 +65535 signed long -2147483648 +2147483647 unsigned long 0 +4294967295 Float -3.402823466e +38F +3.402823466e +38F Double -1.7976931348 623158e+308 +1.79
7、76931348 623158e+308 标签: 学习笔记私房菜c+学习笔记 (c+运算符 2)原创 2006-01-29 15:10:05 | 发表者 : 51f在进行除运算时,需要注意右操作数,即除数应为非零值,否则就会产生浮点运算错误。编程时,我们通常用if 语句判别除数是否为0,例如:if (a != 0) / 只有 a 不等于 0 时才执行下面的操作c = b / a; 标签: 学习笔记私房菜c+学习笔记 (c+运算符 1)原创 2006-01-29 14:48:57 | 发表者 : 51f所谓运算符就是指运算的符号,例如加运算符(+ )、乘运算符( * )、取地址运算符( &)等。
8、表达式与运算符密不可分,它由运算符与操作数组合而成,并精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 16 页 - - - - - - - - - - 由运算符指定对操作数要进行的运算,一个表达式的运算结果是一个值。C+ 提供的运算符有以下几种:算术运算符、关系运算符、逻辑运算符、位运算符、条件运算符、赋值运算符、逗号运算符、sizeof 运算符及其它运算符 (这是按功能分的 ) 。不同的运算符,需要指定的操作数的个数并不相同。根据运算符需要的操作数的个数,可将其分为三种:单目运算符(一个操作
9、数)、双目运算符(两个个操作数)和三目运算符(三个操作数)。 5 种基本的算术运算符运算符名字实例+ 加12 + 4.9 / 得出 16.9 - 减3.98 - 4 / 得出-0.02 * 乘2 * 3.4 / 得出 6.8 / 除9 / 2.0 / 得出 4.5 % 取余13 % 3 / 得出 1 以上 5 个算术运算符都是双目运算符。除% 运算符外,其它算术运算符的两个操作数可以是整型 (short int、int 、long int 、 unsigned short int、 unsigned int 或 unsigned long int型)和实型( float 或 double型)的
10、混合类型,运算结果的数据类型是:两个操作数的数据类型中,具有较高级别的数据类型。例如, 一个 int 型操作数和一个 float 型操作数的运算结果是float 型; 一个 float型操作数和一个 double型操作数的运算结果是double型。取余运算符( % )的两个操作数都必须是整型数,运算结果是整除后的余数。例如 13%3的结果是 1。算术运算的结果可能太大,而不能存储在一个指定的变量中,这种情形称之为溢出。例如: unsigned char k = 10 * 92; / 溢出: 920 255 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名
11、师归纳 - - - - - - - - - -第 5 页,共 16 页 - - - - - - - - - - 标签: 私房菜学习笔记c+学习笔记 原创 2006-01-29 02:15:48 | 发表者 : 51f 标识符是用来标识变量、 函数、数据类型等的字符序列。 C+ 中的标符可以由大写字母、小写字母、下划线(_)和数字 09组成,但必须是以大写字母、小写字母或下划线( _)开头。 C+ 语言中预定义了一些标识符,称之为关键字,它们不能被再定义。 布尔型、字符型、整型、浮点型和空类型是基本数据类型。指针、数组、引用、结构和类可以通过基本数据类型进行构造,称之为复合数据类型。 变量就是机
12、器一个内存位置的符号名,在该内存位置可以保存数据,并可通过符号名进行访问。为了提高程序的可读性,给变量命名时,应该注意使用有意义的名字。变量第一次赋值称之为初始化,变量在使用之前应当先声明。 常量是在程序运行过程中,其值不能改变的量。 C+ 语言本身没有输入输出功能, 而是通过输入输出库完成I/O 操作。C 程序使用的 stdio (标准 I/O )I/O 库也能够在 C+ 中使用;另外 C+ 语言还提供了一种称之为 iostream(I/O 流库)的 I/O 库。标签: 学习笔记私房菜c+学习笔记 ( 枚举类型 )原创 2006-01-28 02:39:48 | 发表者 : 51f我们常常需
13、要一些整型常量表示某一个的数据范围。例如,假定需要表示汽车的颜色:const int cRED = 0; const int cBLUE = 1; int auto_colour; auto_colour = cBLUE; 上面的程序语句是用整型变量auto_colour表示颜色,下面的语句也是合精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 16 页 - - - - - - - - - - 法的:auto_colour = -1; 显然,-1 并不是所需要的颜色值。 如果能够限定 auto_
14、colour在限定的整数范围(即规定的几种颜色集合)内取值就比较好,C+ 中的枚举类型能够让我们做到这一点。枚举类型是一种用户定义的数据类型,其一般定义形式为:enum 枚举类型名 标识符 = 整型常数 , 标识符 = 整型常数 , . 标识符 = 整型常数 , ; 枚举类型名 右边花括号中的内容称之为枚举表,枚举表中的每一项称之为枚举成员,枚举成员是常量,也就是说,枚举表是整型常量的集合。枚举成员之间用逗号隔开,方括号中的整型常数 是枚举成员的初值。如果不给枚举成员赋初值, 即省掉了标识符后的 = 整型常数 时,则编译器为每一个枚举成员给一个不同的整型值,第一个成员为0,第二个为 1,等等。
15、当枚举类型中的某个成员赋值后,其后的成员则按依次加1 的规则确定其值。下面是一个枚举类型定义实例:enum Colour eRED, eBLUE, eYELLOW, eGREEN, eSILVERGREY,eBURGUNDY ; 这样就定义了一个称之为Colour的枚举类型,编译器给枚举成员eRED ,eBURGUNDY 的值分别为 0,5。 定义了枚举类型,就可以定义枚举类型的变量,其值限定为某一个枚举成员。例如:Colour auto_colour; auto_colour = eBURGUNDY; Colour类型变量 auto_colour只能取 eRED ,eBURGUNDY六个值中
16、的一个,下面的语句将会出现编译错误:auto_colour = 4; 我们也可以在定义枚举类型时,为枚举成员指定初值,例如:enum Colour eRED=5, eBLUE, eYELLOW, Egreen=30, Esilvergrey=40,eBURGUNDY ; 这时, eBLUE=6 、Eyellow=7、Eburgundy=41。由上述几种基本数据类型通过各种组合可以得到复合数据类型,这些数据类型在以后章节会有详细讲解。标签: 学习笔记c+学习笔记 ( 变量 2) 原创 2006-01-27 21:49:43 | 发表者: 51f精品资料 - - - 欢迎下载 - - - - -
17、- - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 16 页 - - - - - - - - - - 字符型字符变量用 char 定义, 一个字符变量仅占用一个字节, 存放该字符的编码。该编码是一个数字,并依赖于所使用的编码系统(即与机器相关)。最普通的编码是 ASCII(American Standard Code for Information Interchange) ,即美国信息交换标准编码。例如:字符A 的 ASCII 码为 65 ,字符 a 的 ASCII码为 97 。char ch = A; 象整型数一样,字符变量也可被指定为sign
18、ed或 unsigned。大多数机器上,char 与 signed char意义相同。有些机器上,char 可能与 unsigned char意义相同。一个有符号字符变量可以保存-128 127之间的整数,而一个无符号字符变量可以保存0 255之间的整数,它们均可用于表示小整数,象整型数一样赋值:signed char offset = -88; unsigned char row = 2, column = 26; 一个字符是用一对单引号包围起来,例如:A 。C+ 中还有一些不能打印的特殊字符,称之为转义字符。例如2-1 :字符也可以用它们的编码指定,转义字符通常用三位8 进制数表示,例如2
19、-2 :(假定为 ASCII 码):C+ 的字符由下列字符组成。1、大小写英文字母az ,AZ 2、数字字符09 3、特殊符号空格 ! # % & * _ - + = / | . , ; ? ( ) *例 2-1 :n / 换行r / 回车t / 水平 tab v / 垂直 tab b / 退格f / 进纸 / 单引号 () / 双引号 () / 反斜杠 ()精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 16 页 - - - - - - - - - - 例 2-2 :12 /换行(10 进制
20、编码= 10) 11 / 水平 tab (10进制编码 = 9) 101 / A (10进制编码 = 65) 0 / null (10进制编码 = 0)标签: 学习笔记c+(字符串处理函数 ) 备忘 原创 2006-02-05 03:04:15 | 发表者 : 51f精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 16 页 - - - - - - - - - - strcpy(char destination, const char source); strcpy:将字符串 source拷贝到
21、字符串 destination中。strcpy函数应用举例原型:strcpy(char destination, const char source); 功能:将字符串 source拷贝到字符串 destination中例程:#include #include void main(void) char str110 = TsinghuaOK; char str210 = Computer; coutstrcpy(str1,str2)endl; 运行结果是 :Computer第二个字符串将覆盖掉第一个字符串的所有内容!注意:在定义数组时,字符数组1 的字符串长度必须大于或等于字符串2 的字符串长
22、度。不能用赋值语句将一个字符串常量或字符数组直接赋给一个字符数组。所有字符串处理函数都包含在头文件string.h中。strncpy(char destination, const char source, int numchars); strncpy: 将字符串 source 中前 numchars个字符拷贝到字符串destination中。strncpy函数应用举例原型:strncpy(char destination, const char source, int numchars); 功能:将字符串 source中前 numchars个字符拷贝到字符串destination中例程:#i
23、nclude #include void main(void) char str110 = Tsinghua ; char str210 = Computer; coutstrncpy(str1,str2,3)endl; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共 16 页 - - - - - - - - - - 运行结果: Comnghua 注意:字符串 source 中前 numchars个字符将覆盖掉字符串destination中前 numchars个字符!strcat(char
24、target, const char source); strcat:将字符串 source接到字符串 target的后面。strcat函数应用举例原型:strcat(char target, const char source); 功能:将字符串 source接到字符串 target的后面例程:#include #include void main(void) char str1 = Tsinghua ; char str2 = Computer; coutstrcpy(str1,str2)endl; 运行结果: Tsinghua Computer 注意:在定义字符数组1 的长度时应该考虑字
25、符数组2 的长度,因为连接后新字符串的长度为两个字符串长度之和。进行字符串连接后,字符串1 的结尾符将自动被去掉,在结尾串末尾保留新字符串后面一个结尾符。strncat(char target, const char source, int numchars); strncat:将字符串 source 的前 numchars个字符接到字符串target的后面。strncat函数应用举例:原型:strncat(char target, const char source, int numchars); 功能:将字符串 source的前 numchars个字符接到字符串target的后面例程:#i
26、nclude #include void main(void) char str1 = Tsinghua ; char str2 = Computer; coutstrncat(str1,str2,3)endl; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 11 页,共 16 页 - - - - - - - - - - 运行结果: Tsinghua Com int strcmp(const char firststring, const char secondstring); strcmp:比较两个字
27、符串 firststring和 secondstring。strcmp函数应用举例原型:int strcmp(const char firststring, const char secondstring); 功能:比较两个字符串firststring和 secondstring 例程:#include #include void main(void) char buf1 = aaa; char buf2 = bbb; char buf3 = ccc; int ptr; ptr = strcmp(buf2,buf1); if(ptr 0) coutBuffer 2 is greater tha
28、n buffer 1endl; else coutBuffer 2 is less than buffer 1 0) coutBuffer 2 is greater than buffer 3endl; else coutBuffer 2 is less than buffer 3endl; 运行结果是 :Buffer 2 is less than buffer 1 Buffer 2 is greater than buffer 3 strlen( const char string ); strlen:统计字符串 string中字符的个数。strlen函数应用举例原型:strlen( con
29、st char string ); 功能:统计字符串string中字符的个数例程:#include #include void main(void) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 12 页,共 16 页 - - - - - - - - - - char str100; coutstr; coutThe length of the string is :strlen(str)个endl; 运行结果 The length of the string is x (x为你输入的字符总数字 ) 注
30、意:strlen函数的功能是计算字符串的实际长度,不包括0 在内。另外,strlen函数也可以直接测试字符串常量的长度,如:strlen(Welcome)。标签: 私房菜学习笔记c+学习笔记 ( 位运算符 )原创 2006-01-29 18:19:22 | 发表者 : 51f C+提供 6 种位运算符,可以进行二进制位的运算。位运算符要求操作数是整型数,并按二进制位的顺序来处理它们。取反运算符是单目运算符,其它位运算符是双目运算符。取反运算符( )将操作数的二进制位逐位取反。逐位与运算符(&)比较两个操作数对应的二进制位,当两个二进制位均为 1 时,该位的结果取1,否则取 0。逐位或运算符(
31、|)比较两个操作数对应的二进制位,当两个二进制位均为0 时,该位的结果取0,否则取 1。逐位异或运算符( )比较两个操作数对应的二进制位,当两个二进制位均为 1 或均为 0 时,该位的结果取0,否则取 1。逐位左移运算符( )均有一个正整数n 作为右操作数,将左操作数的每一个二进制位左移或右移n 位,空缺的位设置为0或 1。对于无符号整数或有符号整数,如果符号位为0(即为正数),空缺位设置为 0;如果符号位为 1(即为负数),空缺位是设置为0 还是设置为 1,要取决于所用的计算机系统。位运算符运算符名字实例 取反011 / 得出 366 & 逐位与011 & 027 / 得出001 | 逐位或
32、011 | 027 / 得出037 逐位异或011 027 / 得出036 逐位左移011 逐位右移011 2 / 得出002 标签: 学习笔记私房菜c+学习笔记 ( 逻辑运算符 ) 原创 2006-01-29 18:08:46 | 发表者 : 51fC+ 提供了 3 种逻辑运算符。如同关系运算符,用逻辑运算符组成的表达式的值或为 1(表示 true ),或为 0(表示 false )。逻辑非(!)是单目运算符,它将操作数的逻辑值取反。即:如果操作数是非零,它使表达式的值为0;如果操作数是 0,它使表达式的值为1。逻辑运算符运算符名字实例! 逻辑非!(5 = = 5) / 得出 0 & 逻辑与
33、5 6 & 6 6 / 得出 0 | 逻辑或5 6 | 6 5 / 得出 1 运算符操作数 1 操作数 2 表达式的值逻辑与( & )true true true false true false true false false false false false 逻辑或( | )true true true false true true true false true false false false 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 14 页,共 16 页 - - - - - -
34、- - - - 注意: 对于 0 和非 0 操作数而言,非 0 表示逻辑真( true ),0表示逻辑假( false )。 在逻辑运算中,并不是所有的逻辑运算符都被执行, 只有在必须执行下一个运算符后才能得出表达式的值时,才执行该运算符。例如:a&b&c; 只有当 a 为真时,才依次判断b 和 c,当 a 为 0 时可直接得到表达式的值为 0, 系统不会再继续判断表达式 b 和 c。逻辑运算符中除 ! 为单目运算符外,其余的为双目运算符。 象关系运算符一样,逻辑运算符的结果只能是真或假,为叙述方便和容易理解,用 1 代表真 true ,0 代表假 false 。逻辑表达式 !a 中, 如 a
35、 为 1,则结果为 0,否则结果是 1。逻辑与、逻辑或的运算可以由下表表示。其中操作数 a 代表运算符的左操作数,操作数 b 代表运算符的右操作数,表达似的值代表上表中的表达式的结果。标签: 私房菜学习笔记精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 15 页,共 16 页 - - - - - - - - - - 文档编码:KDHSIBDSUFVBSUDHSIDHSIBF-SDSD587FCDCVDCJUH 欢迎下载 精美文档欢迎下载 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 16 页,共 16 页 - - - - - - - - - -