CH1-2:概述

链接器:链接库代码、启动代码(start-up code)

CH3-5:数据、字符串、运算符

1 数据类型存储方式:整数类型、浮点数类型

2 浮点数存储:小数部分+指数部分

3 int:

3.1 %#o,%#x,%#X 分别是前缀0,0x,0X

3.2  (32位系统,括号中为64位)

4 char:转义字符

5 字符串 string.h

6 printf()作用:断行;换行。 printf()有返回值,正确返回打印字符数,错误打印负数。

7 sizeof 与 sizeof()

8 const

9 参数传递

10 scanf():注意 将字符串读入数组不加取地址符&。返回值为成功读入项目个数,没读到返回0,检测文件结尾返回EOF

  *用法: printf("%*.*f", width, precision, value);设置宽度和精度

scanf("%d %d %d",&n);//跳过前两个整数,把第三个数读给n

其他用法:

while(scanf("%d",&num)==1)

                      continue;//作为占位符,使程序更可读

                     作用:跳过特定输入,如整数。

CH6-9:循环、分支跳转、字符输入输出、函数

1 continue和break

2 单字符

getchar() 流中放入字符

while((ch = getchar())!=‘\n’)防止换行符影响

putchar() 流中取出字符

CH10:数组和指针

1 数组赋值:[ ]指定特定元素

int arry[6] = {[5]=220};


2 数组与指针

array == &array[0];

array +2 == &array[2];

*(array + 2)== array[2];

* array + 2 == array[0] + 2;


3 数组与函数

int sum(int *array, int n);

int sum(int * , int );


int sum(int array[ ], int n);

int sum(int [ ], int);

4 指针

*指针必须初始化


5 const

int * const ptr = ...; 指针不会指向别处 ptr是指针

const int * ptr = ...; 指向的数据不会改变 *ptr是数据

const int * const ptr = ...; 指针和指向的数据都不会改变


6 指针和多维数组array[2][2]

array = &array[0][0] 数组首地址,第一行首地址

array + 1 == &array[0][1] 第二个元素地址

array + 2 == &array[1][0] 第三个元素地址

*(array + 1) == &array[1][0] 第二行的首地址

*(array + 1) + 1 == &array[1][1] 第二行第二个元素地址

*(*(array + 1) + 1) == array[1][1] 第二行第二个元素数据


7 数组指针(数组的指针)与指针数组(指针的数组)

数组指针:指向一维数组的指针,行指针
定义 int (*p)[n];//执行p+1时,p要跨过n个整型数据的长度

指针数组:有n个指针类型的数组

定义 int *p[n];//这里执行p+1是错误的,这样赋值也是错误的:p=a;因为p是个不可知的表示,只存在p[0]、p[1]、p[2]...p[n-1],而且它们分别是指针变量可以用来存放变量地址。但可以这样 *p=a; 这里*p表示指针数组第一个元素的值,a的首地址的值。

8 声明N维数组的指针时,只有最左边的方括号可以留空

int sum(int array[ ][4]);


9 变长数组VLA

变长数组必须是auto存储类型

int row = 5;

int array[row];//row的声明要早于array


int sum(int array[row], int row);//错误!row的声明需要早于array

int sum(int array[ * ], int );//如果省略row名称,array需要用*号代替维数


10 复合文字(可传递数组常量,普通数组只能传递数组变量)

声明方法:(int [2]) {10, 20}

                  (int [  ]) {10, 20, 30}

使用方法:int * ptr; ptr = (int [2]) {10, 20}; //使用指针

                 int sum(int array[ ]);sum( (int [  ]) {10, 20, 30} )

CH11:字符串和字符串函数

1 指针数组

char * ptr[5];

2 数组指针

char (*ptr)[5];

3 gets( )

从标准输入得到字符串,以换行符\n标记输入结束。

返回\n前所有字符+\0,丢弃\n等待下一次调用。

4 fgets( ) 如果读到\n就一并保存到字符串

ptr = fgets(name, MAX, stdin);从stdin读入最大MAX个字符给name。

5 puts( ) 自动添加换行符\n

6 fputs( ) 不自动添加换行符\n

fputs(name, stdout);

7 字符串函数

strlen( )

strcat( ) 字符串添加到另一个字符串尾

strncat( ) 限制添加的字符数

strcmp( )

strncmp( ) 比较前几个字符

strcpy( )

strncpy( )

sprintf( ) 格式化输入到字符串

sprintf(formal, "%s, %-19s: $%6.2f\n",last, first, prize);

查找字符

ptr = strchr(line, '\n');//返回line中第一个\n的地址

ptr = strrchr(line, '\n');//返回line中最后一个\n的地址

查找子串

ptr = strstr(line, subline);//返回line中第一个subline子串的地址

8 字符串转换为数字

atoi( );

atof( );

atol( );

strtol( );

strtoul( );

strtod( );

CH12:存储类、链接和内存管理

存储类:自动、寄存器、外部链接静态、内部链接静态

auto    register     extern        static

作用域:代码块、文件

链接类型:内部、外部、空

转载于:https://www.cnblogs.com/lucas-hsueh/p/3714406.html

《C Primer Plus 第五版》读书笔记相关推荐

  1. 读书笔记 | 墨菲定律

    1. 有些事,你现在不做,永远也不会去做. 2. 能轻易实现的梦想都不叫梦想. 3.所有的事都会比你预计的时间长.(做事要有耐心,要经得起前期的枯燥.) 4. 当我们的才华还撑不起梦想时,更要耐下心来 ...

  2. 读书笔记 | 墨菲定律(一)

    1. 有些事,你现在不做,永远也不会去做. 2. 能轻易实现的梦想都不叫梦想. 3.所有的事都会比你预计的时间长.(做事要有耐心,要经得起前期的枯燥.) 4. 当我们的才华还撑不起梦想时,更要耐下心来 ...

  3. 洛克菲勒的38封信pdf下载_《洛克菲勒写给孩子的38封信》读书笔记

    <洛克菲勒写给孩子的38封信>读书笔记 洛克菲勒写给孩子的38封信 第1封信:起点不决定终点 人人生而平等,但这种平等是权利与法律意义上的平等,与经济和文化优势无关 第2封信:运气靠策划 ...

  4. 股神大家了解多少?深度剖析股神巴菲特

    股神巴菲特是金融界里的传奇,大家是否都对股神巴菲特感兴趣呢?大家对股神了解多少?小编最近在QR社区发现了<阿尔法狗与巴菲特>,里面记载了许多股神巴菲特的人生经历,今天小编简单说一说关于股神 ...

  5. 2014巴菲特股东大会及巴菲特创业分享

     沃伦·巴菲特,这位传奇人物.在美国,巴菲特被称为"先知".在中国,他更多的被喻为"股神",巴菲特在11岁时第一次购买股票以来,白手起家缔造了一个千亿规模的 ...

  6. 《成为沃伦·巴菲特》笔记与感想

    本文首发于微信公众帐号: 一界码农(The_hard_the_luckier) 无需授权即可转载: 甚至无需保留以上版权声明-- 沃伦·巴菲特传记的纪录片 http://www.bilibili.co ...

  7. 读书笔记002:托尼.巴赞之快速阅读

    读书笔记002:托尼.巴赞之快速阅读 托尼.巴赞是放射性思维与思维导图的提倡者.读完他的<快速阅读>之后,我们就可以可以快速提高阅读速度,保持并改善理解嗯嗯管理,通过增进了解眼睛和大脑功能 ...

  8. 读书笔记001:托尼.巴赞之开动大脑

    读书笔记001:托尼.巴赞之开动大脑 托尼.巴赞是放射性思维与思维导图的提倡者.读完他的<开动大脑>之后,我们就可以对我们的大脑有更多的了解:大脑可以进行比我们预期多得多的工作:我们可以最 ...

  9. 读书笔记003:托尼.巴赞之思维导图

    读书笔记003:托尼.巴赞之思维导图 托尼.巴赞的<思维导图>一书,详细的介绍了思维发展的新概念--放射性思维:如何利用思维导图实施你的放射性思维,实现你的创造性思维,从而给出一种深刻的智 ...

  10. 产品读书《滚雪球:巴菲特和他的财富人生》

    作者简介 艾丽斯.施罗德,曾经担任世界知名投行摩根士丹利的董事总经理,因为撰写研究报告与巴菲特相识.业务上的往来使得施罗德有更多的机会与巴菲特亲密接触,她不仅是巴菲特别的忘年交,她也是第一个向巴菲特建 ...

最新文章

  1. 中传计算机应用研究生分数线,2018中国传媒大学考研复试分数线(含2016-2018年)...
  2. itop修改附件上传大小限制
  3. 2月国内操作系统市场份额:Windows XP持续下降
  4. mycat和应用程序集成_企业应用程序集成简介
  5. 在Oracle Cloud上的Prime-UI,JAX-RS和Jersey和Gson
  6. MySQL 创建索引和索引效率验证
  7. StringBuffer的基本使用
  8. windows service 2008 R2 升级 sp1遇到的问题
  9. anguarjs 图片预览_第865期【软件】最新图片排版神器 轻松打造完美排版!
  10. Verilog初级教程(8)Verilog中的assign语句
  11. 【更新】怎样免费下载百度文库文档
  12. ffmpeg php 使用教程_php的ffmpeg - CSDN博客
  13. linux安装完windows字体以后 特别难看,告别 Windows 终端的难看难用,从改造 PowerShell 的外观开始...
  14. Axure可视化原型模板+大数据图表组件 提升您的设计效率 做出甲方买不起的样子
  15. c语言读写csv文件
  16. 怎么在PDF文档中为文字添加下划线
  17. 电商后台管理系统——商品管理
  18. linux相关操作命令(*)
  19. 谜底是计算机病毒的谜语,有关于安全的谜语及谜底答案解析|谜底是粽子的谜语...
  20. #3688. 毒瘤(duliu)

热门文章

  1. 全球首款5G手机来了?三星Galaxy S10 5G版或于4月5日开卖
  2. 星巴克“猫爪杯”遭国人疯抢 而 “大白兔冰淇淋”在美国大火
  3. 36岁程序员:领导平时称兄道弟,裁员时立刻变脸,看透人性
  4. 使用python对url编码解码
  5. 大学mysql期末试题_四川大学数据库系统期末试题2014-2015.doc
  6. mysql字段为空 不作为查询条件_Mysql基本语法知识点小结
  7. Oracle中的数据库对象
  8. 高光谱数据集_文献选读|从地面和空间高光谱数据中提取红边位置参数,以估算水稻冠层叶氮含量...
  9. python生物数据分析师职业技能_数据分析师需要什么技能,数据分析行业都有什么职业?...
  10. 【Elasticsearch】如何使用 Elasticsearch 6.2 搜索中文、日语和韩语文本 - 第 3 部分:语言检测工具