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

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. Hi3531 SDK 安装以及升级使用说明

    Hi3531 SDK 安装以及升级使用说明 第一章 Hi3531_SDK_Vx.x.x.x版本升级操作说明    如果您是首次安装本SDK,请直接参看第2章.     第二章 首次安装SDK 1.Hi ...

  2. 小说接入UC浏览器内核技术对话(一)

    质辛@灿岩 质辛跟我们说一下那个删除文件的逻辑吧质辛@灿岩  应该不是删除cache下所有文件吧?质辛@智鹰  提供一下我们的临时文件完整路径给 灿岩吧质辛@智鹰  是负责我们ucsdk的 技术对接灿 ...

  3. hi3531 SDK 编译 uboot, 修改PHY地址, 修改 uboot 参数 .

    一,编译uboot SDK文档写得比较清楚了,写一下需要注意的地方吧. 1. 之前用SDK里和别人给的已经编译好的uboot,使用fastboot工具都刷不到板子上.最后自己用SDK里uboot源码编 ...

  4. 无法连接MySQL

    1.错误描述 Error No. 2003 Can't connect to MySQL Server on 'localhost' (10061) 2.错误原因       打开任务管理器,关闭了m ...

  5. MFC中CFileDialog用法

    用CFileDialog选择了一个文件后,使用FILE::fopen打开文件错误,使用 的是相对地址,和王工调试了半天,怎么跟踪也没发现错误,原来如此......... CFileDialog文件选择 ...

  6. Codeforces Round #425 (Div. 2) D.Misha, Grisha and Underground

    我奇特的脑回路的做法就是 树链剖分 + 树状数组 树状数组是那种 区间修改,区间求和,还有回溯的 当我看到别人写的是lca,直接讨论时,感觉自己的智商收到了碾压... #include<cmat ...

  7. SpringMVC源码情操陶冶-RequestMappingHandlerAdapter适配器

    承接前文SpringMVC源码情操陶冶-HandlerAdapter适配器简析.RequestMappingHandlerAdapter适配器组件是专门处理RequestMappingHandlerM ...

  8. Echarts自动刷新数据

    1.Echarts自动刷新数据 1.Echarts柱状图的正常配置 注:声明了 myChart.test这两个都有用 官方示例中myChart是声明在 function(ec)里面的 <scri ...

  9. PHPExcel的使用

    1.当然是下载PHPexcel的插件了    http://phpexcel.codeplex.com/ 2.应用插件 我把插件和需要用到的excel模板放的是不同文件夹的,excel我放在publi ...

  10. C# Hook原理及EasyHook简易教程

    前言 在说C# Hook之前,我们先来说说什么是Hook技术.相信大家都接触过外挂,不管是修改游戏客户端的也好,盗取密码的也罢,它们都是如何实现的呢? 实际上,Windows平台是基于事件驱动机制的, ...