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

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. 利用squid 搭建简单的透明代理服务器

    环境介绍 虚拟主机1: ip eth0192.168.0.100/24 eth1: 200.168.0.100/24 虚拟主机2(模拟外网) 200.168.0.109/24 (运行web serve ...

  2. Caused by: java.lang.NoClassDefFoundError: org/springframework/web/context/WebApplicationContext

    1.错误描述 严重: A child container failed during start java.util.concurrent.ExecutionException: org.apache ...

  3. freemarker报错之五

    1.错误描述 freemarker.core.ParseException: Token manager error: freemarker.core.TokenMgrError: Lexical e ...

  4. Array和ArrayList的异同点

    Array和ArrayList的异同点 1.不同点: (1)Array只能存储同构的对象, ArrayList可以存储异构的对象 (2)在CLR托管对中的存放方式中,Array是始终是连续存放的, A ...

  5. ASP.NET Core 2.0 : 六. 举个例子来聊聊它的依赖注入

    本文通过一个维修工与工具库的例子形象的描述一下为什么要用依赖注入.它的工作原理是什么样的, 然后根据这个类比一下ASP.NET Core 中的依赖注入, 从而深刻了解它的使用方法.注意事项以及回收机制 ...

  6. hdu5887 Herbs Gathering

    神他妈随便写写就能过- 暴力枚举每个取不取 两个剪纸: 1.当剩下可用的时间小于最少需要用的时间 跳出 2.当剩下的植物按照理想情况(甚至可以取一部分)得到的极限答案比已经求出的答案大 跳出 #inc ...

  7. Mac 常用快捷键

    可以按下组合键来实现通常需要鼠标.触控板或其他输入设备才能完成的操作. 要使用键盘快捷键,需按住一个或多个修饰键,同时按快捷键的最后一个键.例如,要使用快捷键 Command-C(拷贝),请按住 Co ...

  8. CF908D Arbitrary Arrangement

    题目大意: 给定三个数\(k\) , \(p_a\) , \(p_b\) 每次有\(\frac{p_a}{p_a+p_b}\)的概率往后面添加一个'a' 每次有\(\frac{p_b}{p_a+p_b ...

  9. 【BZOJ1483】【HNOI2009】梦幻布丁(启发式合并,平衡树)

    [BZOJ1483][HNOI2009]梦幻布丁 题面 题目描述 N个布丁摆成一行,进行M次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色.例如颜色分别为1,2,2,1 ...

  10. MySQL根据出生日期计算年龄的五种方法比较

    方法一 SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(birthday)), '%Y')+0 AS age 方法一,作者也说出了缺陷,就是当日 ...