征服C指针

第2章 C是怎么使用内存的

2.1 虚拟地址

    在如今的运行环境中,应用程序面对的是虚拟地址空间。

    fgets(buf,sizeof(buf),stdin);  

    sscanf(buf,"%d",&hoge);  // 将buf写入到hoge


2.2 C 的内存使用方法

2.2.1 C的变量种类

    1. 全局变量

    2. 静态变量-- 作用范围只在当前文件有效

    3. 局部变量-- 函数中声明的变量 作用域只在该函数中,除非在该局部变量前加 static

2.2.2 输出地址

    【函数、字符串常量】

    【静态变量(函数内/文件内)】

    【利用malloc分配的内存区域】

     \\\

     \\\

    【自动变量】


2.3 函数和字符串常量

2.4 静态变量

2.5 自动变量

    C语言中,通常将自动变量保存在栈中,内存区域可以重复利用。

*   在调用方,参数“从后往前”按顺序被堆积在栈中~~!!!

    

    内存中存储方式:

    假设一个栈:从上往下地址依次增大

    main()在较大地址位置,调用函数在较小地址位置。


第三章 揭秘C的语法—它到底怎么回事


3.1 解读C的声明

3.1.1 用英语来读

3.1.2 解读C的声明

    步骤:

    1. 首先着眼于标识符(变量名或者函数名)

    2. 从距离标识符最近的地方开始,依照优先次序解释派生类型(指针、数组和函数) 优先次序如下:

1)用于整理声明内容的括弧

2)用于表示数组的[],用于表示函数的()

3)用于表示指针的*

    3. 解释完派生类型,使用“of”、“to”、“returning”将它们连起来。

    4. 最后追加数据类型修饰符(左边,int、double等)

    eg. int(*func_p)(double)

    func_p is pointer to function(double) returning int


你可能感兴趣的:(征服C指针)