C和指针 (pointers on C)——第一章:高速启动

大多数人并不认为有几类人猿学校计划非常赞同C学习好,然后看多本书。

仅仅作为读书笔记写。有时还包括一些题目和答案。

这样的公开栏,这两种玉引砖敲,对于自勉,鼓励王!


第一章:手

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




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


关于NULL和NUL的差别也说了一些。
NUL也就是字符串中的截尾字符' ',并不存在与预处理中。
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 != ' ')
ch = getchar();
这是个好习惯。
4、在while/if表达式中蕴含赋值操作。


如:
ch = getchar(); 
while(ch != EOF && ch != ' ')
ch = getchar();
就能够写成:
while((ch = getchar()) != EOF && ch != ' ')
;
这样,就能够消除冗余语句。

你能够理直气壮地声称这样的可读性非常差的代码技巧应该避免使用。我也能够理直气壮地告诉你。这是由于你对C不是非常熟。
大牛们在读代码的时候根本不会出现不论什么问题。


5、怎样编写一个空循环体。
while((ch = getchar()) != EOF && ch != ' ')
;
这个分号是很重要的。否则下一句不相关的语句就会被拖入while循环。
6、怎样进行检查。确保数组不越界。
比方在存数组中,必需包含下面:
1、假设输入行结束或者输入行数组已满,跳出循环break;
2、假设输出数据没有足够的空间排,只有傅值它可以容纳数据;

版权声明:本文博客原创文章。博客,未经同意,不得转载。

原文地址:https://www.cnblogs.com/zfyouxi/p/4657104.html