C程序设计语言(K&R)笔记
1.表达式中float类型的操作数不会自动转换为double类型。一般来说,数学函数(如math.h)使用双精度类型的变量。使用float类型主要是为了在使用较大数组时节省存储空间,有时也为了节省机器执行时间(双精度算数元算特别费时)。
2.scanf函数调用时,字符串类型不需要写‘&’,因为其本身即为地址。
3.EOF可能被定义为不同的值,使用EOF等标准符号可以增强程序的可移植性,常见值有-1。
4.根据某种特定的状态做不同的行为,可以用define定义状态量,然后定义int state。如:
#define IN 0
#define OUT 1 ...
if(state == IN)
...
else //OUT
...
5. ~(~0<<n) 得到最右边n位为1,其他位是0.
6.条件表达式
每10行一个换行符:
for(i=0;i<n,i++)
printf("%6d%c",a[i],(i%10==9||i==n-1)? '\n':' ');
是否复数的s
printf("You have %d item%s.\n",n,n==1?"":"s");
7.在switch语句中,case的作用只是一个标号。
8.break只能跳出其所在的一级到上一级,而不是所有层次。
9. getch和ungetch 超前读并放回一个字符
#define BUFSIZE 100 char buf[BUFSIZE];//for ungetch to buffer
int bufp=0;//the next spare index of buf int getch(void)
{
return (bufp>0) ? buf[--bufp] : getchar();
} void ungetch(char c)
{
if(bufp >= BUFSIZE-1)
printf("ungetch: too many characters\n");
else
buf[bufp++]=c;
}
10. 一个外部变量只能在某个文件中定义一次,而其他文件可以通过extern声明来访问他。外部变量的定义必须指定数组的长度,但extern声明则不一定要指定数组的长度。外部变量的初始化只能出现在其定义中。
11.在函数中,可以以程序块结构的形式定义变量,例如for语句的花括号。
12.在不进行显式初始化的情况下,外部变量和静态变量都将被初始化为0,而自动变量和寄存器变量的初值则没有定义。
对于外部变量和静态变量来说,初始化表达式必须是常量表达式,且只初始化一次(在概念上讲是在程序开始执行前进行初始化)。
对于自动变量和寄存器变量,则在每次进入函数或程序块时都将被初始化,可以不是常量表达式。
数组的初始化,如果初始化表达式的个数比数组元素少,则对外部变量、静态变量和自动变量来说,未被初始化的元素将被初始化为0。若初始化表达式的个数比数组元素多,则是错误的。
13.将一个数作为字符串打印
/*print decimal as string*/
void printd(int n)
{
if(n<0){
putchar('-');
n=-n;
}
if(n/10)
printd(n/10);
putchar(n%10+'0');
}
C程序设计语言(K&R)笔记的更多相关文章
- 《C程序设计语言》读书笔记----习题1-21
题目就不写了,大概意思就是:尽量用制表符'\t'替换掉字符串中的空格. 同学们需要注意的是,打印一个制表符'\t',其所占长度不是固定的. 这里要理解“制表符”和“制表符终止位”.“制表符”的作用是使 ...
- 《Go程序设计语言》读书笔记-函数
函数包含连续执行的语句,可以使用代码中通过调用函数来执行他们,函数能够将一个复杂的工作切分成多个更小的模块,使多人写作变得容易.另外,函数对他的使用者隐藏了实现细节.这几方面的特性使得函数成为多数编程 ...
- 《c程序设计语言》读书笔记--字符串比较
举例如下: char a[10]; 1.定义的时候直接用字符串赋值 char a[10]="hello"; 注意:不能先定义再给它赋值,如 char a[10]; a[10]= ...
- 《c程序设计语言》读书笔记-5.6-指针重写getline等函数
#include <stdio.h> #include <math.h> #include <stdlib.h> #include <string.h> ...
- 《c程序设计语言》读书笔记-4.1-判断字符串在另一个字符串中的位置
#include <io.h> #include <stdio.h> #include <string.h> #include <stdlib.h> # ...
- 《c程序设计语言》读书笔记-第二个字符串任意一个在第一个字符串出现的位置,未出先返回-1
#include <stdio.h> #include <string.h> #define Num 1000 int main() { int c,i,j = 0,m = 0 ...
- 《c程序设计语言》读书笔记-字符型0-9转为数字0-9
#include <stdio.h> #define Num 10 int atoi(char s[]); int main() { int c,i = 0; char s[Num]; i ...
- 《c程序设计语言》读书笔记-十六位进制数转十进制
#include <stdio.h> #include <stdio.h> int htoi(char s[]); main() { char s1[] = "10& ...
- 《c程序设计语言》读书笔记--闰年和字符输入不用 && ||
#include <stdio.h> #include <string.h> #define sta 1500 #define Num 1600 int main() { in ...
随机推荐
- (转)25个增强iOS应用程序性能的提示和技巧--初级篇
在开发iOS应用程序时,让程序具有良好的性能是非常关键的.这也是用户所期望的,如果你的程序运行迟钝或缓慢,会招致用户的差评.然而由于iOS设备的局限性,有时候要想获得良好的性能,是很困难的.在开发过程 ...
- 【COCOS2DX-对28游戏开发】 Cocos2d-x-3c 道路设计 CocosBase CocosNet CocosWidget
原文链接:http://blog.csdn.net/cocosviva/article/details/18970717 另一个比較不错的cocos2dx扩展库:https://github.com/ ...
- HTML与CSS入门——第二章 发布Web内容
知识点: 1.使用文本编辑器创建一个基本的HTML文件的方法 2.使用FTP将文件传送到你的Web服务器的方法 3.文件在Web服务器上应该存储的位置 4.在没有Web服务器的情况下分发Web内容的方 ...
- bootstrap 常用类名
一. 常用类1.container居中的内容展示2.row 行内容显示3.col 列内容显示, 列必须在row 中xs 宽度小于768 ,sm宽度小于990 大于768 ,md 宽度大于990,小于 ...
- Android Service(上)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/11952435 相信大多数朋友对Service这个名词都不会陌生,没错,一个老练的A ...
- iOS 证书错误 Certificates下面的 App Store and Ad Hoc是灰的?? 点不了
原因 因为一个用户名下只能同时有一个发布证书,你之前建立了某个证书并且没有使用的话就无法再创建了,先把它撤销或者使用后才可以继续创建新的
- Windows平台字符的存储和输出分析
1. 引言 (写于2011-07-30) 在Windows NT系列的操作系统中最常用的两种字符集是ANSI和Unicode.ANSI是一种泛称,每一个国家或地区的ANSI编码都不一样,比如在Wind ...
- ERP行业推荐参考书籍
1 书名:<ERP 理论.方法与实践> 作者: 周玉清等编著 出版社:电子工业出版社 简介:本书全面介绍了ERP的基本原理和处理逻辑,以大量篇幅讨论了ERP的计划功能,特别是主生产计划功能 ...
- 《javascript高级程序设计》笔记4.1.4:检测类型
javascript类型检测这节主要讲了typeof和instanceof操作符. 一.typeof操作符: 1.typeof在检测基本数据类型时十分方便,针对4种基本数据类型string.numbe ...
- jquery.fn.extend与jquery.extend(转)
jQuery为开发插件提拱了两个方法,分别是: JavaScript代码 jQuery.fn.extend(object); jQuery.extend(object); jQuery.extend( ...