C++变量

作者: Jimmy_L_Wang | 来源:发表于2018-10-18 10:47 被阅读12次

变量

变量其实只不过是程序可操作的存储区的名称。 C++ 中每个变量都有指定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上。

C++ 中的变量声明

变量声明向编译器保证变量以给定的类型和名称存在,这样编译器在不需要知道变量完整细节的情况下也能继续进一步的编译。变量声明只在编译时有它的意义,在程序连接时编译器需要实际的变量声明。

int    i, j, k;
char   c, ch;
float  f, salary;
double d;
extern int d = 3, f = 5;    // d 和 f 的声明 
int d = 3, f = 5;           // 定义并初始化 d 和 f
byte z = 22;                // 定义并初始化 z
char x = 'x';               // 变量 x 的值为 'x'

不带初始化的定义:带有静态存储持续时间的变量会被隐式初始化为 NULL(所有字节的值都是 0),其他所有变量的初始值是未定义的。

C++ 中的左值(Lvalues)和右值(Rvalues)

C++ 中有两种类型的表达式:

  • 左值(lvalue):指向内存位置的表达式被称为左值(lvalue)表达式。左值可以出现在赋值号的左边或右边。
  • 右值(rvalue):术语右值(rvalue)指的是存储在内存中某些地址的数值。右值是不能对其进行赋值的表达式,也就是说,右值可以出现在赋值号的右边,但不能出现在赋值号的左边。

变量是左值,因此可以出现在赋值号的左边。数值型的字面值是右值,因此不能被赋值,不能出现在赋值号的左边。下面是一个有效的语句:

int g = 20;

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

10 = 20;

C++ 变量作用域 variable scope

作用域是程序的一个区域,一般来说有三个地方可以定义变量:

  • 在函数或一个代码块内部声明的变量,称为局部变量(local variable)
  • 在函数参数的定义中声明的变量,称为形式参数(parameter)
  • 在所有函数外部声明的变量,称为全局变量(global variable)

变量的初始化

// initialization of variables

#include <iostream>
using namespace std;

int main ()
{
  int a=5;               // initial value: 5   C风格初始化
  int b(3);              // initial value: 3   ()初始化
  int c{2};              // initial value: 2   {}初始化
  
  int result;            // initial value undetermined

  a = a + b;
  result = a - c;
  cout << result;

  return 0;
}

以上,初始化变量的所有三种方式在C++中都是有效且等效的。

类型扣除:auto和decltype

初始化新变量时,编译器可以通过初始化程序自动确定变量的类型。为此,只需使用auto变量的类型说明符:

int foo = 0;
auto bar = foo;  // the same as: int bar = foo; 

这里,bar声明有一个auto类型; 因此,type bar是用于初始化它的值的类型:在这种情况下,它使用的类型fooint

未初始化的变量也可以使用带有说明decltype符的类型推导:

int foo = 0;
decltype(foo) bar;  // the same as: int bar; 

这里,bar被声明为具有相同的类型foo

auto并且decltype是最近添加到该语言的强大功能。但是,它们引入的类型推导功能意味着在通过其他方式无法获得类型或使用它时提高代码可读性时使用。上面的两个例子可能都不是这些用例。事实上,它们可能降低了可读性,因为在阅读代码时,必须搜索foo实际知道类型的类型bar

相关文章

  • c++——文件操作2-17和一周学习目录

    C++ 初级C++ 1)C++和c区别: C++函数例:hello.cpp 全局变量和局部变量 作用域运算符 : ...

  • C++ 变量和复合类型

    前面说了C++的基本数据类型,下面来看看在C++中如何定义变量和常量。 变量 定义和初始化 C++定义变量的方式和...

  • C++中的成员变量和成员函数

    C++中的类有两个成分: (1)成员变量 成员变量按照作用域分为静态成员变量和非静态成员变量,C++中成员变量的默...

  • C++变量的存储类别

    参考:C++(存储类)经典!! C++存储类(菜鸟教程) C++变量属性 一个变量除了数据类型以外,还有3种属性:...

  • C++——c++知识思维导图

    初级C++ 1)C++和c区别: C++函数例:hello.cpp 全局变量和局部变量 作用域运算符 : :con...

  • c++ python java

    c++ 初始化 C++类中成员变量的初始化有两种方式 - yu132563的专栏 - CSDN博客 C++ 变量初...

  • C++ 中的变量

    C++ 中的变量内存数据类型 C++ 数据类型 使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的...

  • C++函数链接性

    函数链接性 C++变量根据链接性可分为外部变量和内部变量,C++函数也有链接性,也可分为外部函数和内部函数。 普通...

  • c++变量的引用

    本文简单介绍c++变量的引用,在c++当中“引用”就是变量的别名,相当于给变量再起一个名字。 使用&符号来为a和b...

  • C++学习笔记

    初识C++ C++标准格式 变量 作用:给一段指定的内存空间起名,方便操作这段内存。语法:数据类型 变量名 = ...

网友评论

    本文标题:C++变量

    本文链接:https://www.haomeiwen.com/subject/kgsjzftx.html