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

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. FusionCharts报错

    1.具体报错如下 SCRIPT 5007:无法获取属性"SetReturnValue"的值: 对象为空或未定义 script block(158),行1字符158 2.错误原因 3 ...

  2. vxWorks6.6 N270 D525 cpu的bsp配置总结

    对硬盘的操作 使用SATA硬盘,分区,引导区(VxC:)必须格式化为FAT(FAT16)格式,所以该分区大小有限制,不能超过4G(4G大小带测试),设置C:为"活动的": 主机上安 ...

  3. HTML5之Canvas画正方形

    HTML5之Canvas画正方形 1.设计源码 <!DOCTYPE html> <head> <meta charset="utf-8" /> ...

  4. Linux查看系统中的每个进程

    Linux查看系统中的每个进程 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ ps -A PID TTY TIME CMD 1 ? 00:00:01 init ...

  5. View的放大->旋转->还原动画

    以UIButton为例,创建一个类,继承于UIButton /*页面的创建用storyboard*/ .h文件  @interface PTSRecommendButton : UIButton - ...

  6. php+sqlServer 2008R2 PHPstudy下数据库环境搭建

    简要:小主从事PHP二年,期间一直做后台;在过程中遇到一个奇葩的组合就是PHP+sqlServer应用场景,希望能够跟各位PHP大神分享和学习探索,如果有不对或者好的建议告知下:*~*! 一.下载sq ...

  7. Fu+ 后台管理 (Thinkphp)

    简要:小主从事PHP二年,期间一直做后台;为此向大家分享我制作一个后台(权限),希望能够跟各位PHP大神学习探索,如果有不对或者好的建议告知下:*~*! 1. 介绍 Fu+ 后台管理,是本人基于H+好 ...

  8. CODEFORCES 25E Test

    题意 三个字符串,找一个字符串(它的子串含有以上三个字符串)使它的长度最短,输出此字符串的长度. 题解 先枚举字符串排列,直接KMP两两匹配,拼接即可...答案取最小值.. 常数巨大的丑陋代码 # i ...

  9. LightOJ1341 Aladdin and the Flying Carpet

    题意 给一对数字 a,b ,a是一个长方形的面积,问有多少种整数的边的组合可以组成面积为a的长方形,要求最短的边不得小于b 数据组数T<=4000, a,b<=10^12 Solution ...

  10. [BZOJ2743] [HEOI2012] 采花 (树状数组)

    Description 萧芸斓是Z国的公主,平时的一大爱好是采花. 今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花.花园足够大,容纳了n朵花,花有c种颜色(用整数1-c表示),且花是排成一 ...