变量就是程序员可以操作的存储区的名称。
C++每一种变量都有 对应的类型类型的决定了变量存储的大小和布局,
在类型玩味里面的值得都可以存储在 内存中。 运算符号就作用在内存上面。
变量的定义就是告诉编译器在什么地方存储以及怎么存储。
extern声明变量,在某个文件 ,函数,代码块中 被声明一次。
函数声明,提供一个函数名。
指向内存位置的表达式左值,存储在 内存中某些地址的数值 。。
在三个地方声明变量 :
函数或者代码块内部声明变量,局部变量。
函数参数位置声明的变量是形式参数,函数外部声明 的变化量是全局变量。
局部变量可以跟全局变量同值,局部变量会覆盖全局变量。
整数常量可以是十进制,八进制,十六进制。
0x表示十, 0表示八进制,没有前缀默认 就是十进制。
常量也可以带后缀U或者L
常见的转义字符:
\
’ ’
" "
? ?
\a 警报铃声
\b 退格键
\f 换页符
\n 换行符号
\r 回车
\t 水平制表符号
\V 垂直制表 符
\OOO 三位的八进制数字
\xhh 一个或者多个数字的十六进制数
字符串常量包含在"“中,一个字符串常量包含多个字符常量,转义 字符,或者其他的通用的字符
两定义 常量的方式
#define定义常量
#define hight 10;
预处理在主函数外面
const定义常量
const int a=3;
auto 存储类是所有局部变量的默认存储类
register存储类定义存储在寄存器中的而不是存储在RAM 中的变量,变量的最大尺寸是寄存器大小。
static 在程序的生命周期内保持局部变量存在。
extern 提供一个全局变量的引用, 对于无法初始化的变量,会把变量 指向一个之前定义过的位置。extern用来定义另一个 文件中生命的函数或者变量。
通常用于两或者多个文件中共享函数或者变量。
在一个文件中用extrern声明在前一个文件中已经声明的变量。
算数运算符: + - * / % ++ ,–
关系运算符: > < == != >= b <=
逻辑运算符: && || !
位运算符:
p q p & q p | q p ^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1
c++支持所有位运算符
运算符 描述 实例
& 如果同时存在于两个操作数中,二进制 AND 运算符复制一位到结果中。 (A & B) 将得到 12,即为 0000 1100
| 如果存在于任一操作数中,二进制 OR 运算符复制一位到结果中。 (A | B) 将得到 61,即为 0011 1101
^ 如果存在于其中一个操作数中但不同时存在于两个操作数中,二进制异或运算符复制一位到结果中。 (A ^ B) 将得到 49,即为 0011 0001
~ 二进制补码运算符是一元运算符,具有"翻转"位效果。 (~A ) 将得到 -61,即为 1100 0011,2 的补码形式,带符号的二进制数。
<< 二进制左移运算符。左操作数的值向左移动右操作数指定的位数。 A << 2 将得到 240,即为 1111 0000
二进制右移运算符。左操作数的值向右移动右操作数指定的位数。 A >> 2 将得到 15,即为 0000 1111
赋值运算符
运算符 描述 实例
& 如果同时存在于两个操作数中,二进制 AND 运算符复制一位到结果中。 (A & B) 将得到 12,即为 0000 1100
| 如果存在于任一操作数中,二进制 OR 运算符复制一位到结果中。 (A | B) 将得到 61,即为 0011 1101
^ 如果存在于其中一个操作数中但不同时存在于两个操作数中,二进制异或运算符复制一位到结果中。 (A ^ B) 将得到 49,即为 0011 0001
~ 二进制补码运算符是一元运算符,具有"翻转"位效果。 (~A ) 将得到 -61,即为 1100 0011,2 的补码形式,带符号的二进制数。
<< 二进制左移运算符。左操作数的值向左移动右操作数指定的位数。 A << 2 将得到 240,即为 1111 0000
二进制右移运算符。左操作数的值向右移动右操作数指定的位数。 A >> 2 将得到 15,即为 0000 1111
实例
运算符 描述 实例
= 简单的赋值运算符,把右边操作数的值赋给左边操作数 C = A + B 将把 A + B 的值赋给 C
+= 加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数 C += A 相当于 C = C + A
-= 减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数 C -= A 相当于 C = C - A
*= 乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数 C *= A 相当于 C = C * A
/= 除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数 C /= A 相当于 C = C / A
%= 求模且赋值运算符,求两个操作数的模赋值给左边操作数 C %= A 相当于 C = C % A
<<= 左移且赋值运算符 C <<= 2 等同于 C = C << 2
= 右移且赋值运算符 C >>= 2 等同于 C = C >> 2
&= 按位与且赋值运算符 C &= 2 等同于 C = C & 2
^= 按位异或且赋值运算符 C ^= 2 等同于 C = C ^ 2
|= 按位或且赋值运算符 C |= 2 等同于 C = C | 2
实例
其他运算符
sizeof 返回变量的大小
condition?a:b 满足 条件输出A不满足条件输出b
,逗号运算符,会 顺序执行一系列运算
.引用类,结构体,共用体的成员
cast 将一种数据类型转化为 另外一种数据类型
&指针运算符号,返回变量的地址
三种循环控制语句
break 直接跳出循环
cotinue ,跳过循环主体的剩余部分重新开始测试
go to 无条件转移到被标记的语句或者函数
ctrl+c 停止无限循环
五种判断语句
if
if else
嵌套的if
switch
嵌套的switch
函数:
函数声明,告诉编译器函数的返回值类型。函数的参数,函数名称。
返回类型+ 函数名称+参数+函数主体
执行操作但不需要返回的用void
随机数: srand(time()) 调用一个rand 返回一个伪随机数
数组: 声明数组,数组赋初值。
字符数组:c++在声明的时候自动把“” null放进数组中, 以null结尾,c++字符数组的大小比实际大小+
在一个{}里面声明每一个字符组成一个字符数组
c++提供的操作字符串的函数
strcpy(s1,s2) 复制字符串2到字符串1
stract(s1,s2) 将s2连到s1的尾部
strlen(s1 ) 返回字符串长度
strcmp(s1,s2) 1 2 相等返回0,1小于2返回复数,1大于2返回正数
strchr(s1,ch) 返回一个指针,指向s1 中ch第一次 出现的位置