2022年C语言学习笔记,悉心整理 .pdf
《2022年C语言学习笔记,悉心整理 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言学习笔记,悉心整理 .pdf(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C 语言程序基础基本元素若干函数构成C 语言程序,必须有一个main 函数基本数据类型整数: int,short int / short, long int / long. 实数: float,double 字符: char 类型定义符基本 C 中占的字节数.NET C 中占的字节数整数short 2 2 int 2 4 long 4 4 实数float 4 4 double 8 8 字符char 1 1 注意 :1,数据在计算机中的存放是以补码的形式存放,所以计算每个数据类型的取值范围时候要注意。2,float 的有效位数是7 位, double 的有效位数是16 位3,转义字符:? ” d
2、dd xhh ,转义字符定义一定要用这个形式。4,char 和 int 可以通用,当把字符赋值给整型变量时,采用符号扩展,把整数赋值给字符变量时,截取整数的低字节的值。5,使用 sizeof()函数可以获得变量所占的字节数常量与变量变量名用标示符表示,由字母数字下划线组成,必须是字母或者下划线开头。变量必须先定义在使用:类型标示符变量列表;可采用的定义以及赋初始值的格式:int a,b,c; a=1,b=2,c=3; 或int a=1,b=2,c=3; 可以用 #define 定义常量,例如#define PI 3.1415926 ,一般常量用大写表示,变量小写运算符和表达式算术运算符和表达式
3、:+ - * / %(模运算 ) 两个整数相除,结果一定是整数模运算符(求余)要求两个运算对象必须是整数,结果的符号与被除数(分子)一致。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 22 页 - - - - - - - - - 赋值运算符和表达式:= = 顺序是自右到左。复合赋值运算符:+= -= *= /= %= = &= = |= 以+=为例: a+=b 等效于a=a+b; 结合顺序也是从右向左强制类型转换符号如: (int) x;将该表达式的值强制转换成int
4、型自增、自减: + - +i , i+, -i, i+i 先将 i 的值加 1,再使用i i+ 先使用 i 的值,再将i 的值加 1 例子: k=(i+)+(+i)+(i+) 等效于i=i+1,k=i+i+i,i=i+1,i=i+1 k=(+i)+(+i)+( +i) 等效于i=i+1, i=i+1, i=i+1,k=i+i+i 逗号运算符: “, ”优先级最低的符号形式:表达式1,表达式2,, ,表达式n 运算顺序,从左向右,最后最右边表达式n 的值是整个逗号表达式的值关系表达式及运算符关系运算,结果只能是“真”或者“假”。关系运算符含义优先级 6 6 = 6 != 7 逻辑运算逻辑运算符
5、& 与|有一些较为特殊的属性,由& 与|连接的表达式按从左到右的顺序进行求值,并且,在知道结果值为真或假后立即停止计算。根据定义,在关系表达式或逻辑表达式中,如果关系为真,则表达式的结果值为数值1;如果为假,则结果值为数值0。逻辑非运算符!的作用是将非0 操作数转换为0,将操作数0 转换为1。条件运算在表达式expr1 ? expr2 : expr3 中,首先计算expr1,如果其值不等于0(为真 ),则计算expr2 的值,并以该值作为条件表达式的值,否则计算expr3 的值,并以该值作为条件表达式的值。位运算C 语言提供了6 个位操作运算符。这些运算符只能作用于整型操作数,即只能作用于带符
6、号或无符号 char、short、int、long 类型 : & 按位与( AND )| 按位或( OR) 按位异或( XOR ) 右移 按位求反运算符优先级与求值次序() ? . 从左至右! + ? + ? * (type) sizeof 从右至左名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 22 页 - - - - - - - - - * / % 从左至右+ ? 从左至右 从左至右 = 从左至右= != 从左至右& 从左至右 从左至右| 从左至右& 从左至右| 从左
7、至右?: 从左至右= += ?= *= /= %= &= = |= = 从右至左, 从右至左一元运算符 +、&与* 匕相应的二元运算符+、 、& 与*的优先级高。顺序结构程序设计C 程序的结构C 语句:控制语句if()else;switch();case ;while();dowhile();for();continue;break;return;goto 函数调用语句例如: printf () ;表达式语句例如: a=10; b=a+10; 空语句只有一个“; ” ,用于扩展或者特殊需要复合语句把若干语句用 括起来就是复合语句C 程序的三种基本结构顺序结构分支结构循环结构基本语句赋值语句变量
8、 =表达式;左边必须是变量,右边可以如下:变量1=变量 2=。 。 。 =表达式不可以: int a=b=c=2 ;只能 int a=2,b=2,c=2; 复合语句用 括起来,只能看成一条语句,而不是多条语句,从 开始执行,必须执行到为止名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 22 页 - - - - - - - - - 数据输出输出字符:putchar()输出一个字符例如: putchar(,a? ); putchar( ,n?) 包含在头文件stdio.h 中
9、格式化输出及输出格式控制符printf() 函数: (特例,不需包含stdio.h 头文件 ) printf ( “格式控制字符串” ,输出表列) ;其中格式控制字符串是用双引号引起来的字符串,用于指定输出格式,包括格式说明和普通字符两种信息构成。格式说明是以%开头后跟一个格式字符组成普通字符按原样输出。输出表列是需要输出的变量或者表达式。注意:格式符%d %o %u %x %c 用于处理整形和字符型数据%s 用于处理字符串%f %e %g 用于处理实型数据允许没有输出表列,即只输出普通字符,但是格式符一定要正确要输出 %要使用 % %与格式符之间可以指定输出项的宽度和小数点后数据的位数,格式
10、为:%m.n 格式字符。其中域宽为0 开头的数时,则输出前导0. 格式符的应用d 格式符带符号的十进制整形%d 按整形数据的实际长度输出%md 按总域宽m 位输出, m 足够大时候左边补空格,否则按实际输出%ld 输出长整形数据吗,也可以使用%mld o,x,u 格式符分别以八进制、十六进制、十进制无符号数形式输出对应的整形数据当输出的对象有符号时候,求出其补码,并将符号作为数据一部分输出。例如: int a=-1 ;printf ( “%o%u%x ”,a,a,a) ;16 位系统中输出:177777 65535 ffff 内存中存放形式:16 个 1 32 位系统中为32 个 1 c 格式
11、符输出字符,对象可以是字符型也可以是整形对象为整形时候,先将该整数对256 求余数,将余数作为ASCII 码值输出对应的符号也可使用 %mc,m 足够大时候左边补空格例如: int a=65,b=321;printf ( “ %c %c ” ,a,b) ;结果为A A s 格式符输出字符串%s 按实际输出名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 22 页 - - - - - - - - - %ms 占 m 列,若 m 不够字符串宽度则按实际输出,m 大左补空格%-m
12、s 同上,编程右补空格%m .ns 占 m 列,左补,若nm 则 m 取 n 值,只输出字符串左端的n 个%-m .ns 同上右补空格f 格式符%f 按 7 位有效数输出,不管输出的数是否有效都有 6 位小数%m.nf 总域宽 m(含小数点) ,n 为小数位数,m 足够大左补否则实际输出%-m.nf 同上 右补e 格式符以指数形式输出实数%e 系统自动给出宽度,13 列,小数 8 位,其中小数位6 位,小数点前一位非零数,指数部分5 位 e+000 形式显示%m.ne %-m.ne m 为总宽, n 小数位数默认值为6 g 格式符输出实数,根据数值的宽度自动选取f 或者 e 格式中输出宽度较短
13、的,且不输出无意义的0 数据输入字符数据的输入函数名输入方式函数原型getchar() 有回显,需按回车stdio.h getche() 有回显,不需回车conio.h getch() 无回显,不需回车conio.h scanf()的使用scanf( “格式控制字符串” ,地址列表) ;地址: & 变量名字两个格式说明之间无其他符号时候,输入数据时以空格、回车或TAB 来分隔数据若在格式符之间有其他字符,必须原样输入格式也可以控制宽度,按自左而右截取,但是不能规定小数位数scanf()没有 %u 格式,整数一般用d 实数用 f 选择结构程序设计if-else 语句if-else 语句用于条件判
14、定,其语法如下所示: if 表达式 语句1 else 语句2 其中else 部分是可选的。 该语句执行时, 先计算表达式的值,如果其值为真(即表达式的值为非0), 则执行语句1;如果其值为假 (即表达式的值为0), 并且该语句包含else 部分, 则执行语句2。建议在有if 语句嵌套的情况下使用花括号。在C 语言中我们会经常用到下列结构: if ( 表达式 ) 语句else if (表达式 ) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 22 页 - - - - -
15、- - - - 语句else if (表达式 ) 语句else if (表达式 ) 语句else 语句这种if 语句序列是编写多路判定最常用的方法。其中的各表达式将被依次求值,一旦某个表达式结果为真,则执行与之相关的语句,并终止整个语句序列的执行。同样,其中各语句既可以是单条语句,也可以是用花括号括住的复合语句。switch 结构switch ( 表达式 ) case 常量表达式 : 语句序列case 常量表达式 : 语句序列default: 语句序列 每一个分支都由一个或多个整数值常量或常量表达式标记。如果某个分支与表达式的值匹配,则从该分支开始执行。 各分支表达式必须互不相同。如果没有哪一
16、分支能匹配表达式,则执行标记为default 的分支。 default 分支是可选的。如果没有default 分支也没有其它分支与表达式的值匹配,则该switch 语句不执行任何动作。各分支及default 分支的排列次序是任意的。注意:在switch 语句中, case 的作用只是一个标号,因此,某个分支中的代码执行完后,程序将进入下一分支继续执行,除非在程序中显式地跳转。跳出switch 语句最常用的方法是使用break 语句与 return 语句。循环结构程序设计while 循环和 for 循环while ( 表达式 ) 语句 在 while 循环语句中,首先求表达式的值。如果其值非0,
17、则执行语句,并再次求该表达式的值。这一循环过程一直进行下去,直到该表达式的值为0 为止,随后继续执行语句后面的部分。for ( 表达式1; 表达式2; 表达式3) 语句 它等价于下列while 语句 : 表达式1; while ( 表达式2) 语句表达式3; 与表达式3 是赋值表达式或函数调用,表达式2 是关系表达式。这3 个组成部分中的任何部分都可以省略,但分号必须保留。如果在for 语句中省略表达式1 与表达式3,它就退化成了while 循环语句。如果省略测试条件,即表达式2,则认为其值永远是真值,因此,下列for 循环语句 : for (;) . 名师资料总结 - - -精品资料欢迎下载
18、 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 22 页 - - - - - - - - - 是一个 无限 循环语句,这种语句需要借助其它手段(如 break 语句或return 语句 )才能终止执行。do-while 循环do-while 循环的语法形式如下: do 语句while ( 表达式 ); 在这一结构中,先执行循环体中的语句部分,然后再求表达式的值。如果表达式的值为真,则再次执行语句,依此类推。当表达式的值变为假,则循环终止。break 语旬与continue 语旬break 语句可用于从for、w
19、hile 与do-while 等循环中提前退出,就如同从switch 语句中提前退出二样。 break 语句能使程序从switch 语句或最内层循环中立即跳出。continue 语句用于使for、while 和do-while 语句开始下一次循环的执行。在 while 与do-while 语句中,continue 语句的执行意味着立即执行测试部分;在 for 循环中, 则意味着使控制转移到递增循环变量部分。continue 语句只用于循环语句,不用于switch 语句。某个循环包含的switch 语句中的continue 语句,将导致进入下一次循环。goto 语句C 语言提供了可随意滥用的go
20、to 语句以及标记跳转位置的标号。最常见的用法是终止程序在某些深度嵌套的结构中的处理过程,例如一次跳出两层或多层循环。这种情况下使用break 语句是不能达到目的的,它只能从最内层循环退出到上一级的循环。下面是使用goto 语句的一个例子: for ( . ) for ( . ) . if (disaster) goto error; error: /* clean up the mess */ 标号的命名同变量命名的形式相同,标号的后面要紧跟一个冒号。标号可以位于对应的goto 语句所在函数的任何语句的前面。标号的作用域是整个函数。名师资料总结 - - -精品资料欢迎下载 - - - - -
21、 - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 22 页 - - - - - - - - - 数组一维数组一维数组的定义类型说明符数组名常量表达式 ;说明:常量表达式是数组长度,不能用变量表示,可用符号常数或常量表达式;数组名与变量名不能重复;允许一个类型下说明多个变量和数组;数组名是数组的首地址,即a=&a0 。一位数组的初始化类型说明符数组名 常量表达式 = 值,值, , ,值;说明:可以只给部分元素赋值;只能对元素逐个赋值,不能对数组整体赋值;对全部元素赋值时,可以不定义数组长度,系统自动根据初值个数来决定数组长度;未赋值时
22、候元素值随机。数组元素的引用数组名 下标表达式 说明:下标表达式可为常量、表达式、变量,取值范围0元素个数 -1,不能越界;只能对数组的元素进行操作。二维数组二维数组的定义类型说明符数组名 常量表达式1 常量表达式2;例如int b33; 在内存中顺序为b00b01b02b10b11b12b20b21b22 说明:元素按行排列;二维数据可以看做一维数组的数组。二维数组的初始化int a23=1,2,3,7,8,9或 int a23=1,2,3,7,8,9 int a 3=1,2,3,7,8,9或 int a 3=1,2,3,7,8,9自动计算行数,但是列数不可以省略。int a23=1,2,5
23、相当于 int a23=1,2,0,5,0,0自动将少的值赋为0. 二维数组的引用数组名 下标 1 下标 2; 说明:俩下标必须放在俩括号内;下标可以是表达式、常量、变量,不能越界。字符数组定义、初始化、引用定义char c10; 、char c510; 初始化char str= ,c? ,?h?,?i?,?n?,? a? 或 char str5= ,c? ,?h? ,?i?,?n?,?a?以字符常量的形式初始化名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 22 页 -
24、 - - - - - - - - char str10 = ,c? ,?h?,?i?,?n?,?a? char str= “china” 以字符串形式初始化,相当于char str6= “china” 字符串和字符串结束标志C 中没有字符串变量,所以处理字符串常常用字符数组来实现,字符数组相当于字符串变量。对字符串常量,系统会自动在末尾加0 作为结束标志。对字符数组,有时候加0,有时候不加0,见上初始化。字符数组的输入输出逐个for(i=0;i20;i+) scanf(%c,&stri); for (i=0;i20;i+ )printf( “ %c” ,stri); 说明:若输入的字符数小于循
25、环数,按回车后会继续等待输入,回车、空格均算字符;若输入字符数大于循环数,则取前面的;输入为缓冲读,接受到回车,scanf 才读数据。整个scanf(“ %s” ,&str); printf( “ %s” ,str); 说明:输入时候不能含空格,否则会认为该字符串已经输入完成;自动加结束标志。常用字符串处理函数stdio.h gets(str) 从键盘输入字符串存入str 数组,可含空格,回车结束puts(str)将 str 中字符输出到显示器,直到0,会将 0 转换为 n 输出。string.h strlen(str) 求字符串长度,不包括0,返回长度值strcat(str1,str2)将
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年C语言学习笔记 悉心整理 2022 语言 学习 笔记 悉心 整理
限制150内