C语言程序设计 细节总结(第1-7章)
C语言细节总结
温故而知新,许久没看C语言,发现了一些从前没注意的小细节,总结下来~
第1章C语言及C程序概述
1.C语言有34种运算符、32个关键字、9种控制语句
第2章数据类型、运算符与表达式
2.实型常量只采用十进制,表示方法:十进制小数形式、指数形式(aE±n)
3.实型常量不区分float和double型
4.转义字符 \ddd : 1~3位8进制数ddd所对应的字符;\xhh :1~2位16进制数hh所对应的字符
5.长度为n的字符串常量,在内存中占用n+1个字节
6.浮点数在计算机中以指数形式存储,小数部分越多,精确度越高;指数部分位数越多,表示范围越大。
7.单精度实数提供7位有效数字,双精度实数提供15~16位有效数字
8.编译器对逻辑表达式求解,只有在需要下一步计算才能确定表达式的值时,才进行下一步逻辑运算。
9.移位运算不改变原操作数的值,复合移位赋值运算改变。
10.按位右移运算>>,无符号数高位补0,有符号数正数补0,负数补1.
11.逗号表达式具有从左到右结合性,最后一个表达式的值是整个逗号表达式的值,逗号表达式优先级最低。
12.取模:余数的符号与被除数相同(-8%3=-2,15%-8=7)。
13. printf(“%d”,9.2/1.6*1.6==9.2); 结果为0,原因:9.2/1.6所得值有效位数有限。
14. i=8; printf(“%d %d”,j=i+2,- -i); //9,7
printf(“%d %d %d”,j=i+2,i,i- -); //9,7,8 原因:VC6.0中printf语句执行顺序为从右至左。
15. x=2; printf(“%d”,++x * ++x); //4*4=16
16.如果程序中不使用中间变量temp,可使用复合语句实现两数交换:{a=a+b;b=a-b;a=a-b;}
第3章算法、输入输出函数、顺序结构
17.常用的输入函数:scanf、getchar、gets ; 常用的输出函数:printf、putchar、puts。
18.scanf格式:scanf(“格式字符串”,输入项地址表);
(1)如果两格式说明符之间不指定数据分隔符,则输入时空格、Tab、Enter均可
如果指定或格式字符串内有任何普通字符,必须原样输入
(2)如果指定输入数据宽度,系统自动截取 如scanf(“%2d%2d”,&a,&b);//输入1234,则a=12,b=34;
(3)输入实型数据,不能规定小数点后位数
19.printf格式:
printf(“格式字符串”[,输出列表]);
格式说明符:%[标志][最小宽度][.精度][长度][格式字符]
(1)标志:
- : 结果左对齐,右面填空格
+ : 正数输出(+),负数输出(-)
# : 八进制和十六进制数显示前导0和0x
空格: 正数输出空格代替加号,负数输出减号
(2)最小宽度:指定超过实际宽度,补空格;指定不超过或不指定,按实际输出。
(3)精度:
实数:小数点后最多输出位数,不足补0,多出部分四舍五入
整数:最少输出位数,不足补0,多出按实际
字符串:最多输出位数,不足补空格,多出丢弃
(4)长度:h、l
20.将整数用字符形式输出时,系统先求该整数对256的余数,将余数作为ASCII码值,转换成相应字符后再输出。
第4章选择结构
21.条件运算符结合方向是从右向左
22.switch case语句:
(1)case语句后面只能是常量表达式;
(2)应在case分支后加break,否则会顺序执行后面的case;
第5章循环结构
第6章数组
23.C语言不允许动态定义数组,数组长度必须在定义时确定。
24.数组全部初始化为0可以这样写:int a[5]={0};
25.冒泡排序思想:比较相邻两个元素,n个数要进行n-1趟比较,第i趟比较中要进行n-i次两两比较。
26.选择排序思想:依次选择第i个元素分别与其后元素作比较,n个数要进行n-1趟比较,第i趟比较中要进行n-i次两两比较。
27.二维数组,如果对全部元素初始化,第一维长度可以不指定,但必须指定第二维长度。
28.字符数组初始化:
char a[]={‘C’,’h’,’i’,’n’,’a’};//数组长度为5,包含5个字符
char a[]=”China”;//数组长度为6,包含5个字符和字符串结束标志’\0’
29.字符串处理函数:
(1)gets(); gets函数只以回车为输入结束标志,而scanf函数回车和空格都为结束标志。
(2)puts();
(3)strlen();
(4)strcpy(字符串1,字符串2); 将字符串2拷贝至字符串1,包括结束符’\0’
字符数组中不能用赋值语句,如
char str1[10],str2[]=”China”;
str1=str2;//非法
str1=”China”;//非法
strcpy(str1,str2);//合法
(5)strcat();
(6)strcmp(); 两字符串不能直接比较,只能使用函数
(7)strlwr(); strupr();
30.M*N的二维字符数组可存放M个字符串,每个字符串最大长度为N-1(一个位置放’\0’)
第7章函数
31.实参传递给形参值得方式:值传递、地址传递(实参和形参必须是地址常量或变量,如数组名)
32.如果定义的函数值的返回类型和return表达式值不一致,以定义的函数返回类型为准
33.用户使用的内存区:程序存储区、静态存储区、动态存储区
34.变量存储类别:
(1)auto(自动型):可不加auto,函数和复合语句中使用,存储空间自动分配和释放
(2)static(静态型):静态局部变量-程序运行期间不释放;静态全局变量-只限于本文件中的函数引用
(3)register(寄存器型):使用频率较高的数据放在寄存器中,优化的编译系统完成,不需要编程者制定
(4)extern(外部型):全局变量作用域从变量定义处到程序结束,如果在全局变量定义位置之前引用,应该用extern声明;可以将在另一个文件中定义的全局变量作用域扩展到本文件。
35.外部函数extern,内部函数static,默认函数为外部函数,同时在需要调用该外部函数的文件中用extern对函数声明。
C语言程序设计 细节总结(第1-7章)相关推荐
- C语言程序设计 细节总结(第10-11章 文件、预处理命令)
第10章 文件 1.C语言系统把文件当成一个流,按字节进行处理 2.文件按编码方式分为二进制文件和ASCII文件(文本文件) 3.用文件指针标识文件,打开文件可取得该指针 4.对文件进行操作,打开-& ...
- C语言程序设计 细节总结(第9章 结构体共用体枚举)
第9章 结构体.共用体.枚举 9.1 结构体 1.对于同类型结构体变量之间可以整体一次赋值 9.2 指向结构体的指针 9.2.1结构体变量的指针 1.定义格式:struct 结构体名 *结构体指针变量 ...
- C语言程序设计 细节总结(第8章 指针)
第8章 指针 8.1 指针变量 1.指针变量定义及赋值:int a; int *p=&a; 或 int a; int *p; p=&a; 2.指针运算符:(1)取地址运算符& ...
- python语言程序设计梁勇-Python语言程序设计(美-梁勇)第1章习题解答
Python语言程序设计(美-梁勇)第1章计算机.程序和Python概述习题解答 第一章 计算机.程序和python概述 1.1什么是硬件?什么是软件? 答:硬件包括计算机上能看到的物理元素,而软件提 ...
- c语言程序构造数据类型问题,C语言程序设计课程课件之第四章简单构造数据类型.ppt...
C语言程序设计课程课件之第四章简单构造数据类型 第四章 简单构造数据类型 目录 4.1 一维数组 4.2 二维数组 4.3 字符数组 4.4 数组与指针 4.5 数组及指针作为函数参数 4.1 一维数 ...
- c语言函数的程序设计,C语言程序设计第3版,第6章函数程序设计.ppt
C语言程序设计第3版,第6章函数程序设计 C语言程序设计 第6章 函数程序设计 第6章 数组程序设计 6.1 函数概述 6.2 自定义函数示例 6.3 函数定义及调用 6.4 函数嵌套和递归函数 6. ...
- java第二版课后题答案_Java语言程序设计第2版第16章 课后习题答案
<Java语言程序设计第2版第16章 课后习题答案>由会员分享,可在线阅读,更多相关<Java语言程序设计第2版第16章 课后习题答案(62页珍藏版)>请在人人文库网上搜索. ...
- c语言程序设计课件第二章,c语言程序设计课件张元国 ISBN9787566300386 PPT第二章数据类型 运算符与表达式...
1.第2章 数据类型.运算符与表达式,语言的数据类型 常量与变量 运算符与表达式 不同类型数据间的转换,2.1语言的数据类型,数据是计算机程序处理的所有信息的总称,数值.字符.文本等都是数据,在各种程 ...
- 共同体不是c语言中的一个数据类型,《c语言程序设计教学资料》第12章---构体和共同体.ppt...
<c语言程序设计教学资料>第12章---构体和共同体 向函数传递结构体 用结构体指针或结构体数组作为函数参数,向函数传递结构体的地址 按值调用 按地址调用 结构体变量作函数参数 实现按值调 ...
最新文章
- Android之自定义瀑布流式的标签列表
- C++学习笔记-----输出数据的另一种写法(std::copy)
- spad 探测器_从光到光子—“单光子”探测器
- MyBatis使用小案例
- 小米 OV 联合起来才不是为了对抗 Google!
- Hadoop处理HDF文件
- 如何通过投掷一枚硬币产生各种概率
- 清除Windows远程桌面连接记录
- 2022年低压电工考试题模拟考试题库及模拟考试
- 单片机学习笔记(数码管)
- Unity3D 材质球设置参数无效果的解决方法
- CentOS7安装 SGE
- 基于微服务的个人博客系统
- Gentoo USE参数清单中文详解
- 电脑英寸,怎么看自己显示器尺寸_怎么查看电脑屏幕多少英寸
- unix cat命令
- 天干地支计算公式_如何快速的计算出每一天的天干地支
- 淘宝api是什么19970108019
- 微信小程序实时日志wx.getRealtimeLogManager——远程监控小程序日志
- [极客大挑战2021]web wp
热门文章
- lisp协议instand_分享|Linux 上 10 个最好的 Markdown 编辑器
- 2022-2028年中国XPS挤塑板行业市场全景评估及产业前景规划报告
- 用男女朋友关系解释计算机常用概念
- 【软件工程】RUP与软件开发5大模型
- SpringCloud Alibaba微服务实战(四) - Nacos Config 配置中心
- java 16进制与图片互转
- 汇编语言关于8086CPU多种寻址方式总结
- LeetCode简单题之石头与宝石
- 实时实例分割的Deep Snake:CVPR2020论文点评
- Libzip 版本过低或提示reinstall解决方法