变量、常量与运算符
 
一、什么是变量?
    在计算机的内存中, 内存被划分为一个一个的内存单元, 每个内存单元有自己的编号, 而变量就是对某一段连续内存单元使用一些更容易记忆、更容易区分的字符组合为其建立一个新的名称。
 

1)变量名命名规则:
        1)由字母(a-z, A-Z)、数字(0-9)或下划线(_)组成;
        2)第一个字符必须是字母或下划线;
        3)区分大小写, 例如A和a编译器会认为是不同的变量名;
        4)标示符不能是C++的关键字.

 
2)C++的关键字:
  C++的关键字是指C++语言本身已经使用了的有特定意思的字符, 例如int、float、double、char、wchar_t、short、long、signed、unsigned这些都不能再作为变量名, C++关键字整理:
and and_eq asm auto bitand bitor bool break
case catch char class compl const const_cast continue
default delete do double dynamic_cast else enum explicit
export extern false float for friend goto if
inline int long mutable namespace new not not_eq
operator or or_eq private protected public register reinterpret_cast
return short signed struct sizeof static static_cast throw
switch template this typeid true try typedef using
typename union unsigned virtual void volatile wchar_t while
xor xor_eq             

3)变量类型以及取值范围:

数据类型 取值范围
int 与编译器有关
unsigned [int] 与编译器有关
short [int]  -32768 ~ 32768
long [int]  -2147483648 ~ 2147483647
signed [int] 同int
signed short [int]  同short int
signed long [int] 同long int
unsigned short [int] 同unsigned int
unsigned long [int]  0 ~ 4294967295
float -3.4e-38 ~ 3.4e38        小数位6位
double  -1.7e-308 ~ 1.7e308        小数位15位

如果数字超过了这个范围就会产生错误(溢出),在较新的编译器上,  int型数据的范围为-2147483648 ~ 2147483647。

 
二、什么是常量?
     常量是指程序在运行时其值不能改变的量。
 
1)整型常量
     C++提供了三种进制对常量进行描述, 分别是八进制、十进制、十六进制。
 
2)浮点型常量
  浮点型常量与数学上的用法相同, 有两种表示方式: 一种是常规的计数法, 另一种是科学计数法:

1)常规计数法: 整数部分.小数部分

                例如: 1.7、2.65、18.375
    2)科学计数法:
                 由整数部分.小数部分e或E指数部分组成
                 例如:
                    1.7x10的23次方表示为: 1.7e23
                    4x10的17次方表示为: 4e17
                    0.8的负5次方表示为: 0.8e-5
        
     C++可以使用后缀声明一个整型常量或浮点型常量的长度, 可以使用的后缀有L(l):长的, U(u):无符号的, F(f):浮点型的。
            声明一个整型常量为long的整型, 1000L
            声明一个long double型的常量: 1.2L
            声明一个unsigned long int型的常量: 1024UL
     未加后缀区分的整型常数一律默认为int型, 未加后缀区分的浮点型一律默认为double型, 浮点常数只能用十进制表示。
        
3)字符常量
        字符常量用一对单引号('')括起来的一个或多个字符称为字符常量, 例如'A'、'BC'、'#'、'\n'(转义符)、'6'等, 其中'A'、'#'、'6'称为单字符常量, 'BC'称为双字符常量, '\n'为转义符。
        对于双字符常量, 编译器将其解释为一个unsigned short int型。
 
4)C++中的转义符
转义字符  描述
 \’ 单引号
 \”  双引号
\\   反斜杠
            \0              空字符(NUL)
 \ooo o代表一位八进制数
 \a 响铃符
\b 退格符
 \f  换页符
 \n  换行符
 \r 回车符
 \t  水平制表符
 \v 垂直制表符
 \xhh  h代表一位十六进制
 
5)字符串常量
        字符串常量是指用一对双引号括起来的零个或多个ASCII字符的序列, 并以NULL(0)结束的字符串, 例如"Hello, world!"就是一个字符串常量。

 
6)符号常量:
        用一个标识符来表示一个常量,称之为符号常量。
      #define是一条预处理命令, 称为宏定义命令, 其功能是把该标识符定义为其后的常量值。一经定义, 以后在程序中所有出现该标识符的地方均代之以该常量值。
    #define PI 3.14
 
三、运算符
 
1)算术运算:
              +    (加)
              -    (减)
              *    (乘)
              /    (除)
              %    (取余)
              -    (取负)
     说明: 当两数均为整型且被除数不为0才可进行取余运算。
 
2)关系运算:
     关系运算, 又称比较运算, C++提供了6种关系运算:

   >          大于
              <          小于
              =          等于
              >=        大于等于
              <=        小于等于
              ==        等于(两个=号)
              !=        不等于

 
3)逻辑运算:
     逻辑运算符是根据表达式的值来返回真值或是假值。
运算符 名称 说明
&& 逻辑与 同为真返回真
||  逻辑或 有一真返回真
! 逻辑非 值为真返回假, 值为假返回真
 
4)赋值运算:
     赋值语句的作用是把某个常量或变量或表达式的值赋值给另一个变量或左值表达式, 赋值符号为'='。
     注意: 与等于符号(==)区分, 赋值是一个等号=, 而相等为两个等号。等号左边的变量或左值表达式称为左值, 产生值的表达式我们称为右值, 常数只能作为右值。
        i = 10 ;
        a = b = 0 ;
     第一个的含义为将常量10赋值给变量i, 第二个赋值语句的意思是把0同时赋值给两个变量。
 
5)条件运算:
     首先对逻辑表达式进行运算, 如果为真, 则返回表达式1的值; 如果为假, 则返回表达式2的值。
        a = 10 ;
        b = 20 ;
        max = a > b ? a : b ;
 
6)运算符的优先级和结合性
     C++中一些基本运算符的结合性与优先级如下:

优先级

运算符

名称或含义

使用形式

结合方向

说明

1(最高)

[]

数组下标

数组名[常量表达式]

左到右

 

()

圆括号

(表达式)/函数名(形参表)

 

.

成员选择(对象)

对象.成员名

 

->

成员选择(指针)

对象指针->成员名

 

2

-

负号运算符

-表达式

右到左

单目运算符

(类型)

强制类型转换

(数据类型)表达式

 

++

自增运算符

++变量名/变量名++

单目运算符

--

自减运算符

--变量名/变量名--

单目运算符

*

取值运算符

*指针变量

单目运算符

&

取地址运算符

&变量名

单目运算符

!

逻辑非运算符

!表达式

单目运算符

~

按位取反运算符

~表达式

单目运算符

sizeof

长度运算符

sizeof(表达式)

 

3

/

表达式/表达式

左到右

双目运算符

*

表达式*表达式

双目运算符

%

余数(取模)

整型表达式/整型表达式

双目运算符

4

+

表达式+表达式

左到右

双目运算符

-

表达式-表达式

双目运算符

5

<<

左移

变量<<表达式

左到右

双目运算符

>>

右移

变量>>表达式

双目运算符

6

>

大于

表达式>表达式

左到右

双目运算符

>=

大于等于

表达式>=表达式

双目运算符

<

小于

表达式<表达式

双目运算符

<=

小于等于

表达式<=表达式

双目运算符

7

==

等于

表达式==表达式

左到右

双目运算符

!=

不等于

表达式!= 表达式

双目运算符

8

&

按位与

表达式&表达式

左到右

双目运算符

9

^

按位异或

表达式^表达式

左到右

双目运算符

10

|

按位或

表达式|表达式

左到右

双目运算符

11

&&

逻辑与

表达式&&表达式

左到右

双目运算符

12

||

逻辑或

表达式||表达式

左到右

双目运算符

13

?:

条件运算符

表达式1? 表达式2: 表达式3

右到左

三目运算符

14

=

赋值运算符

变量=表达式

右到左

 

/=

除后赋值

变量/=表达式

 

*=

乘后赋值

变量*=表达式

 

%=

取模后赋值

变量%=表达式

 

+=

加后赋值

变量+=表达式

 

-=

减后赋值

变量-=表达式

 

<<=

左移后赋值

变量<<=表达式

 

>>=

右移后赋值

变量>>=表达式

 

&=

按位与后赋值

变量&=表达式

 

^=

按位异或后赋值

变量^=表达式

 

|=

按位或后赋值

变量|=表达式

 

15(最低)

,

逗号运算符

表达式,表达式,…

左到右

从左向右顺序运算

注意: 表格引用自 姜南(Slyar) 的博客, 并进行了部分修改, 已取得引用授权, 引用地址:http://www.slyar.com/blog/c-operator-priority.html
 
相关数据类型所使用的字节数如下:
数据类型 占用字节数
char 1字节
int 不确定, 2或4字节
unsigned int 不确定, 2或4字节
short [int] 2字节
unsigned short [int]  2字节
long [int] 4字节
unsigned long [int]   4字节
float 4字节
double 8字节
 

c++ --> 变量、常量与运算符的更多相关文章

  1. JAVA之旅(一)——基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算

    JAVA之旅(一)--基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算 Android老鸟重新学一遍JAVA是什么感觉?枯燥啊,乏味啊,而且归纳写博客,都 ...

  2. C#基础总结之一变量常量-if嵌套语句-witch结构-类型转换

    //Console.WriteLine("Hello World"); //打印显示 //Console.ReadLine(); //接收输入的值 //Console.ReadKe ...

  3. HTML-JS基础 变量与输入输出 运算符 分支结构

    js中的变量 1.JS中变量声明的写法: var num=10;//使用var声明的变量属于局部变量只在当前作用域内有效 num=10;//不用var声明的变量,默认为全局变量,在整个JS文件中都有效 ...

  4. -1-1 java 基础语法 java关键字 java 注释 常量 语句 运算符 函数 数组定义

    Java语言基础组成 关键字 标识符 注释 常量和变量 运算符 语句 函数 数组 关键字 定义:被Java语言赋予了特殊含义的单词 特点:关键字中所有字母都为小写 用于定义数据类型的关键字 class ...

  5. C#基础课程之二变量常量及流程控制

    课堂练习:.一个四位整数 输出它的千位,百位,十位,个位 数字. ; ; % ; % ; ; Console.WriteLine("千位数" + b+" 百位数" ...

  6. golang基础--常量与运算符

    常量与运算符 常量的定义 常量的值在编译时已经确定 常量的定义格式与变量的基本相同 等号的右侧必须是常量或者常量表达式 规范: 常量定义时建议都使用大写,单词之间使用大写 便于包的外部调用 如果只限于 ...

  7. Java复习3.变量.常量.String.

    Java 中的变量常量数据类型 20131004 前言: 还是国庆节,无聊的很,就没事复习点Java的知识,其实C/C++基本上是现在大型企业面试的语言,但是多学习点Java是没有坏处的,而且,将来工 ...

  8. 变量和数据类型&运算符

    变量和数据类型&运算符 变量 变量的作用:用来存储数据 变量命名的规范:字(字符串)下(_下划线)美($)人(¥) 数 (可以包括数字)骆驼 有意义(可以以字母,下划线,美元符号,人民币符号开 ...

  9. Java 语言基础 (初识Java语言, 变量和数据类型, 运算符, 流程控制语句, 数组)

    初始 Java 语言 Java SE -- Java Platform, Standard Edition 是 Java 平台的基础 Java SE 以前称为 J2SE, 可以编写桌面应用和基于 we ...

随机推荐

  1. vector 遍历

    vector向量容器,是数组的一个泛化推广.实现了类似于数据结构中顺序表的操作. vector容器是一个模板类,可以存放任何类型的对象(但必须是同一类对象).vector对象可以在运行时高效地添加元素 ...

  2. Caused by: org.xml.sax.SAXParseException; lineNumber: 28; columnNumber: 81;

    1.错误描述 严重: Exception sending context initialized event to listener instance of class org.springframe ...

  3. stun/turn/ice学习笔记

    stun基本只是用于client探测NAT之后靠近stun server的外网地址,本身不包含应用数据通信的功能,其底层STUN协议通信多是基于UDP的.多个端点之间相互通过信令通道拿到彼此的NAT外 ...

  4. C#技术点--修改系统时间

    C#的System.DateTime类提供了对日期时间的封装,用它进行时间的转换和处理很方便,但是我没有在其中找到任何可以用来修改系统时间的成员.用过VC.VB等的朋友可能知道,我们可以调用Win32 ...

  5. ls -l 显示年份

    默认情况下ls -l命令只显示月和日,不显示年份: $ ls -llrwxrwxrwx 1 root root 7 Feb 27 16:12 bin -> usr/bin 如要要显示年份,就要使 ...

  6. C# 图解教程 第一章 C#和.NET框架

    C#和.NET框架 在.NET之前.NET时代 .NET框架的组成大大改进的编程环境 编译成CIL编译成本机代码并执行CLR Common Language RuntimeCLI Common Lan ...

  7. 如何用python和苹果Turicreate学习框架来识别图像?

    大多数人听到深度学习,都会望而却步,因为会觉得很难,在这个人工智能飞速进步的时代,我也来抓一下时代的尾巴~ 两周前,我开始接触到python和Turicreate框架,经过不懈的努力,终于有所收获,特 ...

  8. [JZOJ5522] 图

    题目大意: 一个有向图,图中有\(n\)个点\(m\)条边且无重边无自环, 每秒第\(i\)条边出现的概率是\(\frac{p[i]}{100}\), 一开始\(Samjia\)在\(1\)点,每一秒 ...

  9. PHP 接口 返回构造函数

    我们写接口的时候,需要返回json数据,并且里面有错误码,错误信息 还有要返回的数据,这里我构造了一个函数 这里是针对TP5来写的,自己可以根据自己的框架来修改 这样就可以在返回的时候直接用info函 ...

  10. java 关键字final static native详解

    java 关键字native static final详解 一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义, ...