C++基础知识部分之二

1、变量

C++中可以申请设置变量,然后在某些地方使用它。申请变量时最好赋初值,否则这些未初始化的变量通常会被赋予一个半随机值,这个值取决于当时内存中的内容,这个也是许多bug的来源。

下面是常见的C++变量的类型:

int /signed 正整数或者负整数

short 短整型整数,通常是两个字节

long 长整型整数,通常是四个字节

long long 超长整型整数,长度不会低于长整型变量,通常是八个字节

unsigned 无符号整数

unsigned short 无符号短整型整数

unsigned long 无符号长整型整数

unsigned long long 无符号超长整型整数

float 浮点型数字

double 双精度浮点数,精度不会低于float

long double 长双精度浮点数,精度不会低于double

char 单个字符

char16_t  单个16位字符

char32_t  单个32位字符

wchar_t  单个宽字符大小取决于编译器

bool true或者false

C++没有提供基本的字符串类型,但是作为标准库的一部分提供了字符串的标准实现。


不得不提变量之间的类型转换:

共有三种方法:

float myFloat = 3.1415926f;

int i1 = (int) myFloat;//方法一

int i2 = int (myFloat); //方法二

int i3 = static_cast<int>(myFloat); //方法三


2. 运算符

&将一个变量的原始位和另一个变量执行按位“与”运算

| 按位或运算

<<、>>、<<=、>>= 对一个变量的原始位执行移位运算,每一位左移或者右移指定的位数

^ 执行两个变量之间的按位异或运算


使用多种运算符进行运算时,最好带上(),除非你记得符号的优先级。


3. 类型

3.1 枚举类型

enum Ball {baseketball,soccer,tennis,pingpong};

其中默认情况下baseketball=0,soccer=1,tennis=2,pingpong=3;

但是enum Ball {baseketball=1,soccer,tennis=10,pingpong};

此时baseketball=1,soccer=2,tennis=10,pingpong=11;

即编译器会将上一个枚举成员的值递增 1,再赋值给当前的枚举成员。

需要注意的是:如果试图对枚举类型的成员例如soccer,执行算数运算或者将其作为整数对待,编译器会给出警告或者错误信息。


3.2 强类型枚举

一般枚举类型总是被解释为整数数据,因此可以在不同的枚举类型中选取不同的值进行比较。

enum class能够解决这些问题。

enum class Ball

{

baseketball,

soccer,

tennis,

pingpong

}

如果要执行Ball::soccer==0这样的代码,就是不合法的

默认情况下,枚举值的基本类型是整型,但是可以采用以下方式加以改变:

enum class Ball:unsigned long

{

baseketball,

soccer,

tennis,

pingpong

}


3.3 结构

结构struct允许将一个或者多个已有类型封装到一个新的类型中。例如:

struct student

{

char firstname;

char lastname;

long studentnumber;

}

和struct相似的是union,不过union同时只能代表其中一个类型:

union student

{

char lastname;

char firstname;

int IDnumber;

}

union只能表示lastname或者firstname或者IDnumber,不能三者同时表示,建立union对象的时候也只能依照union类型中所包含的最大的那个类型(例如lastname)所占内存大小来申请内存。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值