C和指针 (pointers on C)——第一章:快速上手

不太苟同大多数人认为很多程序员没有几个学C学的好的,那就多看看这本书。

本人只是作为读书笔记来写。有时候会附带一些题目和解答。

开通此类专栏,既为敲砖引玉,也为自勉,望鼓励!

第一章:快速上手

我每次都是复习的来写。我想是这一章,哪怕是上手也需要有一定的C基础。

总结:提出了stdio.h中一些基本的函数,如scanf(),printf(),getchar(),putchar(),gets(),puts()等io函数。

关于NULL和NUL的区别也说了一些。

NUL也就是字符串中的截尾字符‘\n‘,并不存在与预处理中。

NULL是stdio中定义好的字符,表示指针为空,为整型0。

EOF也是stdio种定义好的字符,表示为指针指向文档的结尾。

警告:

1、在scanf函数的标量参数前并未添加&字符。

首先是标量参数,举个例子,数组元素参数是标量参数。它通过值传递来通过main和函数间传递。

&符号在这里是寻址。如果是数组参数,它本身是个地址,所以就不需要做寻址运算了。

2、机械地把printf函数的格式代码照搬于scanf函数。

3、在应该使用&&操作符的地方误用了&操作符。

一个是逻辑操作符,一个是寻址。一般细心都可以避免这个问题。

4、误用=操作符而不是==操作符来测试相等性。

同上,不过这个问题好像犯错的人更多一些。

尤其是在if、while判断中经常出现。

如:while(pointer==EOP)

编程提示:

1、使用#include指令避免重复声明。同时在#include 里面放置函数的原型。

2、使用#define 指令给常量命名。

3、使用数组下标前先检查他们的值。

如:ch = getchar();

while(ch != EOF && ch != ‘\n‘)

ch = getchar();

这是个好习惯。

4、在while/if表达式中蕴含赋值操作。

如:

ch = getchar();

while(ch != EOF && ch != ‘\n‘)

ch = getchar();

就可以写成:

while((ch = getchar()) != EOF && ch != ‘\n‘)

;

这样,就可以消除冗余语句。你可以理直气壮地声称这种可读性非常差的代码技巧应该避免使用。我也可以理直气壮地告诉你,这是因为你对C不是很熟。

大牛们在读代码的时候根本不会出现任何问题。

5、如何编写一个空循环体。

while((ch = getchar()) != EOF && ch != ‘\n‘)

;

这个分号是非常重要的,否则下一句不相关的语句就会被拖入while循环。

6、如何进行检查,确保数组不越界。

比如在存数组中,必需包括以下:

1、如果输入行结束或者输入行数组已满,跳出循环break;

2、如果输出行数据空间不够,只赋值可以容纳的数据;

C和指针 (pointers on C)——第一章:快速上手

时间: 2024-10-10 02:09:08

C和指针 (pointers on C)——第一章:快速上手的相关文章

第一章 快速上手

1.注释:#if 0...#endif 2.预处理命令:预处理机制解释.预处理->源码替换->编译源码 3.C语言,流,实现为指向结构FILE的指针 4.p=(int *)malloc(10); 5.!=NULL,当最后的NUL=>'\0',就不能通过,所以跳出.NUL是ASCII字符集中'\0'的名字,在stdio.h中定义. 6.函数调用数组,传址调用,还是相当于copy了一份指针,所以对于数组多大,计算机不管照收不误. 7.标准未硬性规定c编译器对,数组下标有效性检查. 原文地址:

第一章 快速入门

C++ Primer 中文版,第4版 /* 第一章 快速入门第二章 变量和基本类型第三章 标准库类型第四章 数组和指针第五章 表达式第六章 语句第七章 函数第八章 标准IO库第九章 顺序容器第十章 关联容器第11章 泛型算法 第12章 类 第13章 复制控制 第14章 重载操作符与转换第15章 面向对象编程第16章 模板和泛型编程第17章 用于大型程序的工具第18章 特殊工具与技术 */ /* 第一部分:基本语言------------------------------------------

Mirth Connect 第一章 快速安装

前言:本人会陆续发表相关章节,有需要的人可以耐心等待,总章节供21章,会依次发布,本人发布的文章,均是实验成功的.本人水平有限,如有错误,请及时指出,在此表示感谢,希望关注Mirth Connect.第一章 快速安装 本章介绍了Mirth Connect3.4的基本安装过程,所有的例子都是基于windows操作系统的.安装前请确认满足以下三方面的要求: 1. JRE1.7版本以上(Mirth Connect3.5要求JRE1.8了),一般的情况JDK和JRE都要安装且版本必须一致,否则会导致Se

C++primer第一章 快速入门

本章介绍 C++ 的大部分基本要素:内置类型.库类型.类类型.变量.表达式.语句和函数. 在这一过程中还会简要说明如何编译和运行程序. 要学会一门新的程序语言,必须实际动手编写程序.在这一章,我们将缩写程序解决一个简单的数据处理问题:某书店以文件形式保存其每一笔交易.每一笔交易记录某本书的销售情况,含有 ISBN(国际标准书号,世界上每种图书的唯一标识符).销售册数和销售单价.每一笔交易形如: 0-201-70353-X 4 24.99 在编写这个程序之前,必须知道 C++ 的一些基本特征.至少

Android初级教程理论知识(第一章快速入门)

一.综合介绍. Android项目的目录结构 Activity:应用被打开时显示的界面 src:项目代码 R.java:项目中所有资源文件的资源id Android.jar:Android的jar包,导入此包方可使用Android的api libs:导入第三方jar包 assets:存放资源文件,比方说mp3.视频文件 bin:存放编译打包后的文件,apk可直接在手机里安装了. res:存放资源文件,存放在此文件夹下的所有资源文件都会生成资源id drawable:存放图片资源 layout:存

《C++ 101条建议》学习笔记——第一章快速入门

1.C++程序组成:a.编译指示,由#开始,不由分号结束.只是影响编译过程.b.声明语句,影响编译过程,编译结果中并不会生成对应的指令.只是告诉编译器一些信息.c.可执行过程语句,生成对应的指令.包括:简单语句.复合语句.控制语句.try语句等.d.函数(返回类型,函数名称,参数列表,函数体).函数名称说明函数的功能,返回值返回函数执行后的输出结果,形式参数表示函数的输入或输出,函数体决定函数的执行过程. 2. 面向过程:分析解决问题所需要的步骤,用函数把这些步骤依次实现. 面向对象:把构成问题

spring-boot第一章:快速开始

快速开始 创建pom.xml文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.

深入理解 C 指针阅读笔记 -- 第一章

上周末,我在图书馆看到了这本很薄的书 -- <深入理解 C 指针>       这本书中写的内容,个人感觉适合一个初学者,内容不是很难.我也读了下,对每一章都做了笔记,笔记都是用代码的形式贴出来. Chapter1.h #ifndef __CHAPTER_1_ #define __CHAPTER_1_ /*<深入理解C指针>学习笔记 -- 第一章*/ /*一个数如果是无符号的,那么尽量去选用 size_t 类型*/ /*使用 size_t 类型的时候一定要用对了输出格式*/ voi

C语言学习书籍推荐《C和指针 Pointers On C》下载

<C和指针 POINTERS ON C>提供与C语言编程相关的全面资源和深入讨论.本书通过对指针的基础知识和高 级特性的探讨,帮助程序员把指针的强大功能融入到自己的程序中去.  全书共18章,覆盖了数据.语句.操作符和表达式.指针.函数.数组.字符串.结构和联合等几乎所有重要的C编程话题.书中给出了很多编程技巧和提示,每章后面有针对性很强的练习,附录部分则给出了部分练习的解答.  本书适合C语言初学者和初级c程序员阅读,也可作为计算机专业学生学习c语言的参考. 下载地址:点我 编辑推荐 本书通

笔记-Python基础教程(第二版)第一章

第一章 快速改造:基础知识 01:整除.乘方 (Python3.0之前 如2.7版本) >>> 1/2 ==>0 1/2整除,普通除法: 解决办法1: 1.0/2.0  ==>0.5 解决办法2:from _future_ import division 1/2  ==>0.5 // 表示整除 >>>1//2 ==>0 浮点数//浮点数,结果依然是整除结果 >>>1.0//2.0 ==>0.0 实际操作截图: ** 表示乘