《征服C指针》读书笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/laoxuan2011/article/details/52813976

《征服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如何使用内存

  • 什么是静态变量?什么是自动变量?在内存中是如何保存这两类型的变量的?

猜你喜欢

转载自blog.csdn.net/laoxuan2011/article/details/52813976
今日推荐