《Pointers On C》读书笔记(第一章 快速上手)
2013-07-30 21:06
316 查看
1.C语言是一种自由格式的程序设计语言,没有规则要求我们必须如何书写语句。然而,如果我们在编写程序时能够遵守一些约定还是非常值得的,它可以使代码更加容易阅读和修改。另外,预处理命令有较为严格的规则。
2.要从逻辑上删除一段代码,最好使用预处理命令,例如:
3.C语言中所有传递给函数的参数都是按值传递的。
4.NUL和NULL的区别:
NUL是ASCII字符集中'\0'字符的名字,其字节模式为全0。NUL是作为字符串终止符,本身并不被看作是字符串的一部分。另外,并不存在预定义的符号NUL,如果你想在程序中使用它而不是字符常量‘\0',那么,必须自行定义。
NULL指一个其值为0的指针,符号NULL一般在头文件<stdio.h>、<ios.h>或<windef.h>中定义。在笔者使用的编程环境(Mingw)中,在<windef.h>中找到如下定义:
关于NULL的更多疑问,可以参考《C FAQ》第五章。
5.由于scanf函数的实现原理,所有标量参数的前面必须加上一个"&"符号。数组参数前面不需要加上"&"符号,但即使加上一个"&"符号也没有什么不对。使用所有格式码(%c除外)时,输入值前面的空白(空格、制表符、换行符等)会被跳过,输入值后面的空白表示该值的结束。另外,在使用scanf函数格式码时,注意其与printf函数格式码的区别。
6.先看代码:
为什么变量ch被声明为整型?
这是因为EOF是一个整型值,它的位数比字符类型要多,把ch声明为整型可以防止从输入读取的字符意外地被解释为EOF。但同时,这也意味着接收字符的ch必须足够大,足以容纳EOF。其值在头文件<stdio.h>(摘自Mingw)中有定义:
2.要从逻辑上删除一段代码,最好使用预处理命令,例如:
#if 0 statements #endif
3.C语言中所有传递给函数的参数都是按值传递的。
4.NUL和NULL的区别:
NUL是ASCII字符集中'\0'字符的名字,其字节模式为全0。NUL是作为字符串终止符,本身并不被看作是字符串的一部分。另外,并不存在预定义的符号NUL,如果你想在程序中使用它而不是字符常量‘\0',那么,必须自行定义。
NULL指一个其值为0的指针,符号NULL一般在头文件<stdio.h>、<ios.h>或<windef.h>中定义。在笔者使用的编程环境(Mingw)中,在<windef.h>中找到如下定义:
#ifndef NULL #ifdef __cplusplus #define NULL 0 #else #define NULL ((void*)0) #endif #endif
关于NULL的更多疑问,可以参考《C FAQ》第五章。
5.由于scanf函数的实现原理,所有标量参数的前面必须加上一个"&"符号。数组参数前面不需要加上"&"符号,但即使加上一个"&"符号也没有什么不对。使用所有格式码(%c除外)时,输入值前面的空白(空格、制表符、换行符等)会被跳过,输入值后面的空白表示该值的结束。另外,在使用scanf函数格式码时,注意其与printf函数格式码的区别。
6.先看代码:
int ch; while((ch = getchar()) != EOF && ch != '\n') putchar(ch);
为什么变量ch被声明为整型?
这是因为EOF是一个整型值,它的位数比字符类型要多,把ch声明为整型可以防止从输入读取的字符意外地被解释为EOF。但同时,这也意味着接收字符的ch必须足够大,足以容纳EOF。其值在头文件<stdio.h>(摘自Mingw)中有定义:
/* Returned by various functions on end of file condition or error. */ #define EOF (-1)
相关文章推荐
- 《C和指针》读书笔记——第一章 快速上手
- C++ primer 读书笔记--第一章 快速入门
- 《Python 编程快速上手 — 让繁琐工作自动化》读书笔记之【第8章 读写文件】
- Understanding and using c pointers 第一章读书笔记
- mysmgit-之git-on-windows快速上手
- 《Python 编程快速上手 — 让繁琐工作自动化》读书笔记序
- 《Python 编程快速上手 — 让繁琐工作自动化》读书笔记之【第13章 处理PDF和Word文档(2)】
- 《Python 编程快速上手 — 让繁琐工作自动化》读书笔记之【第18章 用 GUI 自动化控制键盘和鼠标】
- 《Python编程快速上手——让繁琐的工作自动化》读书笔记3
- 《Python 编程快速上手 — 让繁琐工作自动化》读书笔记之【第9章 组织文件】
- 《Python 编程快速上手 — 让繁琐工作自动化》读书笔记之【第1章 Python基础】
- 《Python 编程快速上手 — 让繁琐工作自动化》读书笔记之【第4章 列表】
- mysmGit 之Git on Windows快速上手[转]
- 《Python 编程快速上手 — 让繁琐工作自动化》读书笔记之【第7章 模式匹配与正则表达式(2)】
- [spark 快速大数据分析读书笔记] 第一章 导论
- 《Pointers On C》读书笔记(第三章 数据)
- 快速上手Java on Azure Functions无服务计算
- Pointers On C_读书笔记(一)
- Jfinal学习日志第一章-快速上手(详细图解)
- 《C和指针》第一章 快速上手