本节书摘来自异步社区《C和指针》一书中的第1章,第1.7节,作者 【美】Kenneth A.Reek,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.7 问题

1.C是一种自由形式的语言,也就是说并没有规则规定它的外观究竟应该怎样[9]。但本章的例子程序遵循了一定的空白使用规则。你对此有何想法?

2.把声明(如函数原型的声明)放在头文件中,并在需要时用#include指令把它们包含于源文件中,这种做法有什么好处?

3.使用#define指令给字面值常量取名有什么好处?

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和指针》一1.7 问题相关推荐

  1. MIT 6.s081学习笔记

    MIT 6.s081学习笔记 introduction 计算机组织结构: 最底部是一些硬件资源,包括了CPU,内存,磁盘,网卡 最上层会运行各种应用程序,比如vim,shell等,这些就是正在运行的所 ...

  2. Go 知识点(19)— Go 语言中的野指针

    野指针是一种指向内存位置是不可知的指针,一般是由于指针变量在声明时没有初始化所导致的.在 Go语言中,布尔类型的零值为 false,数值类型的零值为 0,字符串类型的零值为 "", ...

  3. C++ 笔记(27)— 指针变量、数组和指针、指针数组、数组指针、指针常量与常量指针

    1. 什么是指针变量? 指针变量是专门有一个变量来存放指针. int main(int argc, char *argv[]) {int a = 10;int *p = &a; //通过取地址 ...

  4. Go 学习笔记(71)— Go 接口 interface (接口定义、接口实现、接口调用、值接收者、指针接收者)

    1. 接口的定义 接口是和调用方的一种约定,它是一个高度抽象的类型,不用和具体的实现细节绑定在一起.接口要做的是定义好约定,告诉调用方自己可以做什么,但不用知道它的内部实现,这和我们见到的具体的类型如 ...

  5. Go 学习笔记(70)— Go 变量声明、变量初始化、值类型变量赋值、指针类型变量赋值

    1. 变量声明 要单纯声明一个变量,可以通过 var 关键字,如下所示: var s string 该示例只是声明了一个变量 s,类型为 string,并没有对它进行初始化,所以它的值为 string ...

  6. c/c++中的函数指针和指针函数

    定义 1.指针函数,本质是函数,返回值为指针,形如,int *pfun(int, int),由于"*"的优先级低于"()"的优先级,所以等同于int *(pfu ...

  7. 关于C语言中的数组指针、指针数组以及二级指针

    概念解释 数组指针:首先它是一个指针,它指向一个数组,即指向数组的指针:在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道.数组指针指向的是数组中的一个具体元素,而不是整个数组,所 ...

  8. 【数据结构】链表中的 指针,地址

    数据结构中跳过集合,直接开始线性结构 线性结构中单链表的操作涉及到给一个变量赋值地址,所以涉及到了指针 通过指针里的地址很方便找到节点 但指针这里绕了我很长时间,不论学了多少遍也不敢说把指针学会了 地 ...

  9. Qt实现 指针式时钟+动态时钟 (详细注释)

    先上效果图: 点击运行后首先是一个指针式时钟窗口,点击Digital Clock->可以跳转到数字时钟窗口,再点击Move Clock->可以还原为指针式时钟窗口 关于整个程序的讲解都在代 ...

  10. 【C语言】数组指针与指针数组的区分与应用

    这里以一道C语言题--输出矩阵两个对角线上的数(二维数组)为例 7-57 输出矩阵两个对角线上的数(二维数组) (6 分) 编写程序,将数据输入一个n * n二维数组中,输出矩阵两个对角线上的数.假设 ...

最新文章

  1. LeetCode简单题之增量元素之间的最大差值
  2. 客快物流大数据项目(五):Docker介绍
  3. 2016 Multi-University Training Contest 4 Bubble Sort(树状数组模板)
  4. memchace监控统计
  5. Py之dlib:Python库之dlib库的简介、安装、使用方法详细攻略
  6. 【Tomcat】Tomcat性能分析
  7. r语言员工离职_HR,你真的会做员工面谈吗?
  8. Response_案例1_路径_绝对路径
  9. go Windows Service
  10. 好奇怪呀后面加什么标点_狗狗吃饭时奇怪的小动作,你知道代表什么吗?做个懂狗的好主人...
  11. 【HDU - 1542】Atlantis (线段树,扫描线)
  12. 面试官问面向对象特点_最好的面试官有什么共同点?
  13. 被尘封的故事鸿蒙轩,被尘封的故事全任务通关人物存档
  14. 为什么JavaScript仅在IE中打开开发人员工具一次后才能工作?
  15. 物联网“智能水表”产品简要分析——从人民日报官微推送的NB-IoT应用谈起
  16. 调整Exchange接收连接器延迟参数解决SMTP代发送邮件问题
  17. 深度学习——知识点总结3(损失函数Loss)
  18. 释放英特尔锐炫™显卡潜能:性能升级、定价更新
  19. OSPF状态切换以及包内容的交互,以及如何根据LSDB还原单区域拓扑
  20. 使用Git对Word或Excel文件进行版本管理

热门文章

  1. SAP PI 业务处理引擎
  2. 谷歌发文回顾2018年AI进展:让AI人人可用!
  3. 从SAP APO到SAP IBP:CIO如何实现最佳过渡?
  4. 使用Java程序消费SAP Leonardo的机器学习API
  5. 10个机器学习的JavaScript示例
  6. 01_字符串处理-----04_在文本中应用ZIpf定律
  7. PPT讲解机器人产业发展现状与未来展望,重磅资料
  8. 中国首份自动驾驶路测报告:自主车企全面落后
  9. 盘点2018十大科技丑闻,IT相关两项
  10. 汽车行业最大创新仍未到来,四大力量将重塑未来汽车新纪元