zoukankan      html  css  js  c++  java
  • c++变量的声明和定义

    1.变量的定义:变量的定义用于为变量分配存储空间,还可以为变量指定初始值。在一个程序中,变量有且仅有一个定义。

    2.变量的声明:用于向程序表明变量的类型和名字。程序中变量可以声明多次,但只能定义一次

    • 变量的声明有两种情况
      (1) 一种是分配内存空间的(声明)。例如:int a在声明的时候就已经分配了内存空间。
      (2) 另一种是不需要分配内存空间的(声明)。例如:extern int a其中变量a是在别的文件中定义的。

      第一种是"定义性声明",或者称为”定义",第二种是"引用性声明"。可以理解为声明中包含着定义,但是并非所有的声明都是定义,
      例如:int a既是声明,同时又是定义。然而对于extern a来讲它只是声明不是定义。
      

    3.定义和声明的区别
    一般的情况下我们常常这样叙述,把分配内存空间的声明称之为"定义",把不需要分配内存空间称的声明之为"声明"。

    extern int a; //声明
    
    int b;	//定义
    
    int b=1;	//初始化
    
    b=2;	//赋值
    
    //另外在定义的时候也可以初始化,也就是我们常用的写法
    int c=3;
    

    4.为什么需要区分声明和定义:

    C++程序通常由许多文件组成。为了让多个文件访问相同的变量,C++区分了声明和定义。任何在多个文件中使用的变量都需要既有定义又有声明。在这种情况下,在一个文件中定义了变量,在其他使用改变了的文件中则只能包含变量的声明(不能再包含定义,因为变量只能定义一次)。

    5.真正用的时候 这种需要被别的文件用的变量,必须在本文件中定义好,比如在文件1中定义int i=0;然后才可以再别的文件中使用,使用方式是:在类体的外部使用extern int i;这样在这个类中就可以使用该外部变量了,再次强调必须先定义好,才能再别的地方通过extern声明使用。例:

    #include <QDebug>
    #include "myclass.h"
    int test_i;//定义 等同于 extern test_i =0;
    MyClass::MyClass(QWidget *parent, Qt::WFlags flags)
     : QMainWindow(parent, flags)
    {
     ui.setupUi(this);
     qDebug()<<test_i;
    }
    
    MyClass::~MyClass()
    {
    
    }
    
    
    
    #include "YourClass.h"
    //#include "myclass.h"
    
    extern int test_i;//在此类类体外部声明,在此类中即可使用
    YourClass::YourClass(void)
    {
     test_i++;
    }
    
    
    YourClass::~YourClass(void)
    {
    }
    
  • 相关阅读:
    【队列应用一】随机迷宫|随机起点终点*最短路径算法
    【堆栈应用二】迷宫算法,可直接动态运行
    【堆栈应用一】一个数divided=几个最小质因数的乘积(时间复杂度On)
    MyEclipse2014中Java类右键Run as没有JUnit Test
    C++中break/Continue,exit/return的理解
    windows下用C++修改本机IP地址
    windows下注册表的操作
    详解Java的Spring框架中的注解的用法
    什么是Java Bean
    JS windows对象的top属性
  • 原文地址:https://www.cnblogs.com/wsl-hitsz/p/13698199.html
Copyright © 2011-2022 走看看