C++ 基本操作

C++ 基本操作

变量和基本类型
基本内置类型
  1. 使用过程中如果int的数值范围太小,那就选择long long
  2. 当我们赋给无符号类型一个超出它表示范围的值时,结果是初始值对无符号类型表示数值总数取模后的余数。例如,8比特带下的unsigned char表示的是0-255区间内的值,如果我们对它赋值-1,其结果是该值对256取模后的余数,为255。
  3. 而当我们赋给带符号类型一个超出它表示范围的值时,结果是未定义的。可能引起程序崩溃。
  4. 如果表达式中出现了带符号数与无符号数的混用,那么带符号数会被自动的转换成无符号数,并且当带符号数为负值时,会因为无符号数的取模而发生错误。
  5. 如果两个字符串字面值位置紧邻而且仅由空格、缩进、换行符组成,那么他们事实上是一体的。当书写的字符串的字面值比较长,写在一行里不太合适的时候可以分开书写,例如
std::cout<<"a really, really, long"
    		"sentence"<<std::endl;
转义字符
字符 含义
\v 纵向制表符
\b 退格符
\" 双引号
\' 单引号
\? 问号
\\ 反斜杠
\x+任意位数16进制数字 由字符集决定的某字符
\+1-3位8进制数字 由字符集决定的某字符

注意中间没有

变量声明和定义
  1. 变量的声明使得没名字为程序所知,一个文件如果想使用别处定义的名字,则必须包含对那个名字的声明。
  2. 定义负责创建于名字关联的实体
  3. 变量声明规定了变量的类型和名字,在这一点上定义与声明相同。但是除此以外,定义还申请存储空间,也可能会给这个变量赋一个初始值
  4. 如果想要声明一个变量而非定义它,加载变量名前面添加关键字extern,而且不要显示的初始化变量。因为任何包含了显式初始化的声明就是定义。我们可以给由extern关键字标记的变量赋一个初始值,但是这么做也就抵消了extern的作用
  5. 在函数体内部,如果试图初始化一个(已经在之前)由extern关键字标记的变量,将引发错误,因为变量能且只能被定义一次,但是可以被多次声明。
作用域
  1. 作用域中一旦声明了某个名字,它所包含的所有作用域中都能访问该名字。同时,允许在内层作用域中重新定义外层作用域中已有的名字,并且在该内层作用域中原来的名字被这个新变量屏蔽。
  2. 如果我们需要在内层作用域中访问一个被屏蔽的全局作用域的变量,可以使用域作用运算符::来覆盖默认的作用域规则。因为全局作用域本身并没有名字,左侧为空就表示访问全局作用域中的某个元素。但是我们最好不要定义一个与全局变量同名的局部变量
指针与引用
引用
  1. 定义引用时,程序会把引用和它的初始值绑定在一起,而不是将初始值拷贝给引用。因为无法令引用重新绑定到另外一个对象,引用必须初始化。
  2. 引用并非对象。引用只是为一个已经存在的对象所起的另外一个名字
指针
  1. 指针最好初始化。用一个未初始化的指针来存储某个变量的值是极其危险的。由于定义在函数内部的内置变量将不被初始化,指针所指向的位置是随机的,很可能指向的位置没有访问权限(如系统底层数据存储空间),试图改变该空间数据的值将引发未知错误
  2. 指针之间的初始化、拷贝尤其注重底层const的一致性或者可转化性。不能用一个普通指针指向一个const类型的数据,但是可以用一个指向const类型的指针(底层const)指向一个非const类型的数据,因为非const类型可以直接转化成const类型,反之则不行。
定义一个指向指针的引用:
int *p
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值