• 定义、声明、初始化、赋值的区别


    变量声明:

    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

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

  • 相关阅读:
    [LeetCode] 374. Guess Number Higher or Lower
    [LeetCode] 35. Search Insert Position
    [LeetCode] 205. Isomorphic Strings
    [LeetCode] 87. Scramble String
    [LeetCode] 274. H-Index
    [LeetCode] 507. Perfect Number
    [LeetCode] 88. Merge Sorted Array
    [LeetCode] 283. Move Zeroes
    [LeetCode] 287. Find the Duplicate Number
    [LeetCode] 204. Count Primes
  • 原文地址:https://www.cnblogs.com/sggggr/p/13570265.html
Copyright © 2020-2023  润新知