C primer plus 读书笔记第二章
这章的标题是C语言概述,内容大概是介绍一些简单的示例程序,来了解和熟悉C语言的一些基本特征。
这是书里的第一段代码,敲敲找找感觉。推荐在linux环境下写代码。
PS:倒腾sublime text一下午,想装个sublimeClang插件,结果直接把sublime text整崩了,怒换atom,用着还不错。
#include <stdio.h>
int main(void) /*一个简单的C程序*/
{
int num; /*定义为一个名为num的变量*/
num = 1; /*赋值*/
printf ("i am a simple "); /*使用printf()函数*/
printf("computer.\n");
printf("my favorite number is %d because it is first.\n", num );
return 0;
}
代码很简单。后面的2.2节实例说明非常详细。很适合新手反复读。
注意:
1.#include不是C语言的语句,#符号表示这一行是在编译器接手前由C预处理器处理的语句。
2.传统上,C语言要求必须在一个代码块的开始处声明变量,在这之气不允许其他任何语句。现在C99遵循C++原则,允许把声明放在代码中的任何位置。但是许多编译器还不支持C99这一规则。
3.使程序可读的技巧:1.选择有意义的变量名。2.使用注释。3.使用空行分隔一个函数的概念上的多个部分。4.一句一行。
书中的第三个实例代码如下
#include "stdio.h"
void butler (void); /* ISO/ANSI C 函数原型*/
int main(void)
{
printf ("I will summon the butler funtion.\n");
butler();
printf ("Yes, Bring me some tea and writeable CD-ROMS.\n");
return 0;
}
void butler(void)
{
printf("You rang, sir?\n");
}
C90标准添加了原型,原型是一种声明形式,用于告诉编译器你正在用一个特殊的函数,同时指明函数属性。C标准建议要用的所有函数提供函数原型。
调试程序方法:1.一步一步跟踪程序。2.关键地方加入额外的printf()语句。3.使用调试器。
课后习题都是有关printf()的练习,没什么难度。
to be continued...
C primer plus 读书笔记第二章的更多相关文章
- 《C++ Primer》读书笔记—第二章 变量和基本类型
声明: 文中内容收集整理自<C++ Primer 中文版 (第5版)>,版权归原书所有. 学习一门程序设计语言最好的方法就是练习编程. 1.8比特的char类型计算机表示的实际范围是-12 ...
- 《C++ Primer》读书笔记 第二章
1.在算数表达式中最好不要使用char或bool,只有在存放字符或布尔值时才使用他们,因为char在有些机器上是有符号的,在一些机器上是无符号的,所以特别容易出问题,如果只表示一个不大的整数,那么明确 ...
- STL源码分析读书笔记--第二章--空间配置器(allocator)
声明:侯捷先生的STL源码剖析第二章个人感觉讲得蛮乱的,而且跟第三章有关,建议看完第三章再看第二章,网上有人上传了一篇读书笔记,觉得这个读书笔记的内容和编排还不错,我的这篇总结基本就延续了该读书笔记的 ...
- 《C++ Primer》读书笔记 第一章
读<C++ Primer>才知道,自己对C++知之甚少... 写个博客记录下自己C++的成长,只是读书笔记,不是对<C++ Primer>知识点的总结,而是对自己在书上看到的以 ...
- Getting Started With Hazelcast 读书笔记(第二章、第三章)
第二章 起步 本章就相当简单粗暴了,用一个个例子说明hazelcast怎么用. 1.map,set,list这些集合类都是开箱即用的,只要从Hazelcast的实例中获取一份就行. 2.增加了Mult ...
- Java Concurrency in Practice 读书笔记 第二章
第二章的思维导图(代码迟点补上):
- Spring 3.x 实践 第一个例子(Spring 3.x 企业应用开发实战读书笔记第二章)
前言:工作之后一直在搞android,现在需要更多和后台的人员交涉,技术栈不一样,难免鸡同鸭讲,所以稍稍学习下. 这个例子取自于<Spring 3.x 企业应用开发实战>一书中的第二章,I ...
- javascript 数据结构和算法读书笔记 > 第二章 数组
这章主要讲解了数组的工作原理和其适用场景. 定义: 一个存储元素的线性集合,元素可以通过索引来任意存取,索引通常是数字,用来计算元素之间存储位置的偏移量. javascript数组的特殊之处: jav ...
- [Effective Java 读书笔记] 第二章 创建和销毁对象 第一条
第二章 创建和销毁对象 第一条 使用静态工厂方法替代构造器,原因: 静态工厂方法可以有不同的名字,也就是说,构造器只能通过参数的不同来区分不同的目的,静态工厂在名字上就能表达不同的目的 静态工厂方法 ...
随机推荐
- maven指定构建的编码格式
pom.xml文件添加如下内容: <properties> <project.build.sourceEncoding>UTF-8</project.build.s ...
- asp.net C# 导出EXCEL数据
if (dt == null) { return ""; } Microsoft.Office.Interop.Excel.Application xlApp = new Micr ...
- Android中的缓存机制与实现
分步阅读 Android开发本质上就是手机和互联网中的web服务器之间进行通信,就必然需要从服务端获取数据,而反复通过网络获取数据是比较耗时的,特别是访问比较多的时候,会极大影响了性能,Android ...
- tomcat启动项目内存溢出问题
catalina.bat文件的第二行加下面的即可: 注意最大内存设置,和系统的内存有关系 set JAVA_OPTS=%JAVA_OPTS% -Xms512m -Xmx1024m -XX:PermSi ...
- word2vec生成词向量原理
假设每个词对应一个词向量,假设: 1)两个词的相似度正比于对应词向量的乘积.即:$sim(v_1,v_2)=v_1\cdot v_2$.即点乘原则: 2)多个词$v_1\sim v_n$组成的一个上下 ...
- JS屏蔽右键菜单,复制,粘帖xxxxx........
//屏蔽右键菜单 document.oncontextmenu = function (event) { if (window.event) { event = window.event; } try ...
- Hibernate 一对多双向关联Demo
以Classes[班级]和Student[学生]为例的Demo //Classes.java public class Classes implements Serializable { privat ...
- [FindBugs分析记录]Potentially dangerous use of non-short-circuit logic
官网解释: This code seems to be using non-short-circuit logic (e.g., & or |) rather than short-circu ...
- PHP删除Solr文档
<?php $options = array ( 'hostname' => 'localhost', 'port' => '8080', 'path'=>'solr/help ...
- js 判断url的?后参数是否包含某个字符串
function GetQueryString(name){ var reg=eval("/"+name+"/g"); var r = window. ...