《征服C指针》读书笔记

来源:互联网 发布:印度军工产业知乎 编辑:程序博客网 时间:2024/06/16 04:03

《征服C指针》读书笔记

评价

对于学习过C语言和C++的,《征服C指针》推荐一读,能明白一些指针深层次的一些知识点,对于一些知识有一种顿悟的感觉。如果C语言不熟或者是初学者就没必要看这种书了。好好学基础知识吧。

知识总结

Chapter 1

  • 实验结果
    #include<stdio.h>    int main(void)    {    int array[5];    int *p;    int i;    //initialize a array    for(i = 0; i<5;++i){        array[i] = i;    }    p=array;    for(i = 0; i<5;++i){        printf("*(p+i)...%d\n",*(p+i));    }    for(i = 0; i<5;++i){        printf("p[i]...%d\n",p[i]);    }    for(i = 0; i<5;++i){        printf("i[p]...%d\n",i[p]);    }    for(i = 0; i<5;++i){        printf("array[i]...%d\n",array[i]);    }    for(i = 0; i<5;++i){        printf("i[array]...%d\n",i[array]);    }    return 0;    }

输出

这里写图片描述

Chapter 2 C如何使用内存

C语言变量有三种作用域,而除了作用域不同,还有存储期的差别。
- C语言变量的三种作用域
全局变量:源代码文件之间也可见
文件内部的静态变量:限制在所在源文件之内
局部变量:在{}之内。

  • 变量存储期
    静态存储期:全局变量,文件内部的静态变量,含有static的局部变量都是持有静态存储期。这些统称为静态变量。它在程序结束之前一直存储在内存的同一个位置上。
    自动存储期 :没有指定为static的局部变量,持有自带存储期,称为自动变量。在语句块{}结束之后释放。
  • 三种内存区域的寿命
    静态变量:程序结束—程序结束
    自动变量:{}之内
    通过malloc()函数分配:到free()结束

问题

Chapter 1

  • 指针是什么?指针的加减运算时怎样计算的?

  • 在说明数组声明语句中使用[]来声明一个数组,那么,为什么说在表达式语句中的下标运算符[]和数组是没有关系的?

  • 如果试图将数组作为函数参数进行传递的话,那么实际上传递的是什么?

  • C语言为什么不做数组下标越界检查

Chapter 2 C如何使用内存

  • 什么是静态变量?什么是自动变量?在内存中是如何保存这两类型的变量的?
0 0
原创粉丝点击