zoukankan      html  css  js  c++  java
  • static, extern的用法和区别, const用法

    当使用static来修饰局部变量, 那么会延长局部变量的生命周期, 并且会更改局部变量存储的位置 , 将局部变量从栈转移到静态区中.

    只要使用static修改局部变量之后, 当执行到定义局部变量的代码就会分配存储空间, 但是只有程序结束才会释放该存储空间

    用static声明或定义一个变量,那么变量只分配一次内存空间,即只执行一次.


    static和extern: 函数也分为内部函数和外部函数,(内部函数:只能在当前文件中范文的函数称之为内部函数,  外部函数: 可以被其它文件访问的函数称之为外部函数)

    默认情况下所有的函数都是外部函数

    只要在函数的返回值前面加上一个extern就可以让函数变为一个外部函数, 由于默认就是外部函数, 所以在开发中一般情况extern没人写

    如果extern写在函数的实现中, 代表定义一个外部函数

    如果extern写在函数的声明中, 代表声明一个外部函数

    只要在函数的返回值前面加上static就可以让函数变为内部函数, 其它文件就不能访问了

    如果static写在函数的实现中, 代表定义一个内部函数

    如果static写在函数的声明中, 代表声明一个内部函数


    const:

    const对基本数据类型的作用, 可以让基本数据类型的变量变为常量

    const有两种写法, 1.写在数据类型的左边, 2.写在数据类型的右边

    如果const写在指针类型的左边, 那么意味着指向的内存空间中的值不能改变, 但是指针的指向可以改变

    如果const写在指针的数据类型和*号之间, 那么意味着指向的内存空间中的值不能改变, 但是指针的指向可以改变

    如果const写在指针的右边(数据类型 * const), 那么意味着指针的指向不可以改变, 但是指针指向的存储空间中的值可以改变

    规律:

         如果const写在指针变量名的旁边, 那么指针的指向不能变, 而指向的内存空间的值可以变

         如果const写在数据类型的左边或者右边, 那么指针的指向可以改变, 但是指向的内存空间的值不能改变




    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    程序员面试金典题解
    Leetcode 解题报告
    常用小算法
    BestCoder 百度之星2016
    jQuery 删除或是清空某个HTML元素。
    dataTable 默认排序设定
    jquery tableExport 插件导出excel (无乱码) 比较简单的表格
    php 根据周数获取当周的开始日期与最后日期
    thinkphp5使用load和use引入第三方类
    判断checkbox是否选中
  • 原文地址:https://www.cnblogs.com/liuqblog/p/4948154.html
Copyright © 2011-2022 走看看