读书笔记之C Primer Plus 5

2022-11-19  本文已影响0人  余很多之很多code

为什么阅读《C Primer Plus》第六版

准备好好研究下redis源码,但是很久没用c语言写代码了,平时工作主要用java和js。
所以准备重新阅读学习下c语言经典书籍:C Primer Plus。
更好地阅读redis源码。


第10章 数组和指针

数组

  int powers[4]={1,2,3,4}; //从ANSI C开始

多维数组

const float rain[5][12]=
{
    {4.3,1.1,3.2,4.3,1.5}
};

指针和数组

dates+2 == &dates[2]; //true
*(dates+2) == dates[2]; //true

函数、数组和指针

指针操作

第十一章 字符串和字符串函数

const char * pt1 = "Somethings";
const char ar1[] = "Somethings";
//两者相同

pt1指针通过 *(pt1) == '\0' 来判断是否到字符串结尾。

字符串输入

字符串输出

字符串函数

strncat(bugs,addon,13)
//把addon字符串的内容附加到bugs,在加到第13个字符串或遇到空字符时停止。

命令行参数

字符串转数字

第12章 存储类别、链接和内存管理

作用域

作用域描述程序中可访问标识符的区域。一个c变量的作用域可以是块作用域、函数作用域、函数原型作用域或文件作用域。

链接

c变量有3种链接属性:外部链接、内部链接或无链接。

存储期

c对象有4种存储期:
静态存储期、线程存储期、自动存储期、动态分配存储期。

寄存器变量

块作用域的静态变量

外部链接的静态变量

 extern char coal; /*如果Coal被定义在另一个文件*/
如果省略掉extern关键字,相当于创建了一个自动变量。

存储类别和函数

分配内存:malloc()和free()

double * ptd;
ptd = (double *) malloc(30 * sizeof(double));

以上代码为30个double类型的值请求内存空间,并设置ptd指向该位置。

上一篇 下一篇

猜你喜欢

热点阅读