zoukankan      html  css  js  c++  java
  • C/C++知识点笔记

    sizeof 如果是类型必须加括号,如果是变量名可以不加括号,返回size_t类型,

    sizeof("")=2

    strlen从内存某个位置扫描直到碰到字符串结束符为止只能用char*做参数

    strlen(("")=0

    用数组名做参数时,sizeof不退化,传递给strlen就退化为指针了

    char a[10]

    sizeof(a)=10

    strlen(a)=1

    sizeof在编译期间运算,关心分配的空间大小。 strlen在运行期计算,关心存储的字符数据内容的长度

    char str[20]="0123456789"

    sizeof(str)=20

    strlen(str)=10

    小结:1.使用方法的区别;2.长度计数规则区别;3.数组名作参数的退化区别;4.一个是编译期间一个是运行期间的区别。

    指针的引用  *&

    指针的引用,相当于传递的是指针的指针,这样指针的数值是可以改变的   

    单传递指针,不传递指针的引用,那么指针指向的数据是可以改变,而指针本身是不可以改变的

     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    fun(int   *   pA);     //   pA的数值在函数返回后不会变化   
    fun(int*&   pA);     //   pA的数值在函数返回可能会发生变化,如果fun函数内部对pA赋值的话
      
    void   InitStack(LNode*   &   HS)   
    {   
              HS   =   NULL;     //   函数返回后,   HS就是NULL了   
    }   
         
    void   InitStack(LNode*   HS)   
    {   
              HS   =   NULL;     //   函数返回后,   HS依然是传递进来的数值   
    }
    */

    简单讲,*&指针本身可变; *指针本身不变,仅指向的内容可变

    全局变量和extern详解

    http://my.oschina.net/hnuweiwei/blog/291037

    声明与定义

    声明不等于定义,声明只是指出了变量的名字,并没有为其分配存储空间

    定义指出变量名字同时为变量分配存储空间,定义包含了声明

    extern  int  i;  //声明变量i,但没分配存储空间,还不能使用, 可以出现很多次,下面的三种情况只能出现一次

    int  i;         //定义了变量i,并分配了空间,可以使用

    extern int a =0 //定义一个全局变量a 并给初值

    int a =0;//定义一个全局变量a,并给初值

    注意:在程序中一个变量可以声明多次,但只能定义一次

    在函数内部定义的变量称为局部变量,它的作用域是从定义处到函数结束;

    在函数外部定义的称为全局变量,它的作用域是从定义处直到文件结束。

    不管是全局变量还是局部变量,作用域都是从定义处开始的

    extern

    extern是用来声明全局变量的

    要想使用其他文件的一个全局变量,就必须定义extern type variablename,然后才能使用

    如果const变量想被其他文件使用,在定义的前面需要添加extern

    extern const int temp4=400;//const默认是局部变量,即使是在全局中申明也一样,且在定义时,必须赋予初值。若想在外部引用,必须加extern
    Coding
  • 相关阅读:
    Decimal 格式化输出( 去掉多余的0和点)
    HTML Character Sets
    生成下面的模块时,启用了优化或没有调试信息
    PJBLog的CSS模板图
    .NET 实例化顺序
    Live Mail 报错 0x80048820 可能的处理方式
    Windows下将Ldif文件导入OpenLdap时的中文转换问题
    DataGrid中动态添加列
    Sip协议栈消息层的设计与实现
    Prism学习笔记模块之间通信的几种方式
  • 原文地址:https://www.cnblogs.com/ccie-leon-43093/p/5451937.html
Copyright © 2011-2022 走看看