zoukankan      html  css  js  c++  java
  • 定义、声明、初始化、赋值的区别

    变量声明:

    extern int a;//只声明一下这个变量,会在别处定义的

    变量定义:

    int a;//说明该变量在内存中的位置和大小,声明加定义

    变量初始化:

    int a = 7;//定义时给变量一个值

    变量赋值:

    a=2;//把变量原有的值擦除,重新给一个值

    C 中的左值(Lvalues)和右值(Rvalues)
    C 中有两种类型的表达式:
    左值(lvalue):指向内存位置的表达式被称为左值(lvalue)表达式。左值可以出现在赋值号的左边或右边。
    右值(rvalue):术语右值(rvalue)指的是存储在内存中某些地址的数值。右值是不能对其进行赋值的表达式,也就是说,右值可以出现在赋值号的右边,但不能出现在赋值号的左边。
    变量是左值,因此可以出现在赋值号的左边。数值型的字面值是右值,因此不能被赋值,不能出现在赋值号的左边。下面是一个有效的语句:

    int g = 20;

    但是下面这个就不是一个有效的语句,会生成编译时错误:

    10 = 20;

    初始化局部变量和全局变量
    当局部变量被定义时,系统不会对其初始化,您必须自行对其初始化。定义全局变量时,系统会自动对其初始化,如下所示:

    数据类型
    初始化默认值

    int                     0
    char                    ''
    float                   0
    double                  0
    pointer                 NULL

    正确地初始化变量是一个良好的编程习惯,否则有时候程序可能会产生意想不到的结果,因为未初始化的变量会导致一些在内存位置中已经可用的垃圾值。

    图来自知乎:https://www.zhihu.com/question/27639400 淡北戴河

    ————————————————
    版权声明:本文为CSDN博主「午后阳光温暖一冬」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_34866146/article/details/81027577

  • 相关阅读:
    python libsvm模块在mac上的安装
    logistic regression (Python&Matlab实现)
    读C++ primer 的一些练习
    R笔记
    python学习笔记
    linux常用命令
    macbook air安装ubuntu双系统简记
    解方程——对分法
    解方程——不动点迭代
    隐马尔可夫模型模型评估及最优路径的matlab实现
  • 原文地址:https://www.cnblogs.com/sggggr/p/12806732.html
Copyright © 2011-2022 走看看