江湖车侠|C和指针:如何快速上手C语言( 八 )
#include预处理指令可以使一个函数库头文件的内容由编译器进行处理, #define指令允许你给字面值常量取个符号名 。
所有的C程序必须有一个main函数,应是程序执行的起点 。 函数的标量参教通过传值的方式进行传递而数组名参数则具有传址调用的语义 。 字符串是一串由NUL字节结尾的字符,并且有一组库函数以不同的方式专门用于操纵字符串 。 printf函数执行格式化输出, scanf函数用于格式化输入, getchar和putchar分别执行非格式化字符的输入和输出 。 If和while语句在C语言中的用途跟它们在其他语言中的用途差不太多 。
通过观察例子程序的运行之后,你或许想亲自编写一些程序 。 你可能觉得C语言所包含的内容应该远远不止这些,确实如此,但是,这个例子程序应该足以让你上手了 。
1.5 警告的总结
1.在scanf函数的标量参数前未添加&字符 。
2.机械地把printf函数的格式代码照搬于scan函数 。
3.在应该使用&&操作符的地方误用了&操作符 。
4.误用=操作符而不是==操作符来测试相等性 。
1.6编程提示的总结
1. 使用#include指令避免重复声明
2. 使用#define指令给常量值取名 。
3. 在#include文件中放置函数原型 。
4. 在使用下标前先检查它们的值 。
5. 在while或i表达式中蕴含赋值操作 。
6.如何编写一个空循环体 。
7.始终要进行检查,确保数组不越界 。
1.7问题
1.C是一种自由形式的语言,也就是说并没有规则规定它的外观究竟应该怎样 。 但本章的例子程序遵循了一定的空白使用规则 。 你对此有何想法?
2.把声明(如函数原型的声明)放在头文件中,并在需要时用#include指令把它们包含于源文件中,这种做法有什么好处?
【江湖车侠|C和指针:如何快速上手C语言】3.使用#deine字面值常量取名有什么好处?
4.依次打印一个十进制整数、字符串和浮点值,你应该在printf函数中分别使用什么格式代码?试编一例,让这些打印值以空格分隔,并在输出行的末尾添加一个换行符 。
5.编写一条scanf语句,它需要读取两个整数,分别保存于quantity和price变量,然后再读取一个字符串,保存在一个名叫department的字符数组中 。
6.C语言并不执行数组下标的有效性检查 。 你觉得为什么这个明显的安全手段会从语言中省略?
7.本章描述的rearrange程序包含下面的语句
strncpy( output + output_col,
input + columns [col], nchars);
strcpy函数只接受两个参数,所以它实际上所复制的字符数由第2个参数指定 。 在本程序中,如果用strcpy函数取代strncpy函数会出现什么结果?
8. rearrange程序包含下面的语句
while( gets( input ) != NULL ){
你认为这段代码可能会出现什么问题?
本文节选自《C和指针》
本书提供与C语言编程相关的全面资源和深入讨论 。 本书通过对指针的基础知识和高级特性的探讨 , 帮助程序员把指针的强大功能融入到自己的程序中去 。全书共18章 , 覆盖了数据、语句、操作符和表达式、指针、函数、数组、字符串、结构和联合等几乎所有重要的C编程话题 。 书中给出了很多编程技巧和提示 , 每章后面有针对性很强的练习 , 附录部分则给出了部分练习的解答 。
推荐阅读
- 定格|有的人演再多的喜剧,也掩盖不了江湖人物的锋芒
- 阿里巴巴|马云,江湖再见
- 滴滴出行|网约江湖:生态闭环的滴滴
- 琴歌解说|出怀旧服才是这个游戏的出路,热血江湖:别再弄手游了
- 天涯明月刀手游|三千万预约,天刀手游终测能否让玩家买单?阿暖带你云游江湖
- 鲜闻快讯|行走江湖的七个哲学思维,《我的前半生》唐晶安全友善并不幸福
- 江湖车侠|国产操作系统发布:售价99元,你愿意花费这个价格去尝试吗
- 江湖车侠|谁说小米等于性价比?千元5G实力派,OPPO和VIVO不差
- 艺统江湖|赵丽颖演过的十二部古装电视剧,你最喜欢她的哪个古装扮相?
- 北府财君|收益随即放大十倍,江湖上失传已久的炒股秘籍——仅靠这两招买入技巧
