2.C++基础知识(变量、数据类型、string类、引用、运算符)

2.C++基础知识

2.1变量、常量和赋值

变量

  • C++也使用变量的编程构造来命名和储存数据,变量容纳的数据成为这个变量的

  • 编译器将内存位置分配给程序的每一个变量名,我们可以简单的认为内存位置就是用变量名做标签

  • 变量(或者在程序中定义的其他项目)的名称叫标识符,标识符必须字母或下划线开头,后续每个字符只能是字母、数字、或下划线

  • 计算机用不同的编码方式编码不同类型变量,声明变量就是告诉编译器两点,一、应该给一个变量分配多大的内存空间,二、用哪种编码方式将变量的值表示成一串0和1
    ###常量
    常量是固定值,在程序执行期间不会改变

  • 整数常量:整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,不带前缀则默认表示十进制

  • 浮点常量:浮点常量由整数部分、小数点、小数部分和指数部分组成。

  • 布尔常量:由两个标准的C++关键字组成,true和false

  • 字符常量:由单引号括住的字符,如’a’,‘b’,还有转义字符序列’\n’,’\t’等等

  • 字符串常量:由双引号括住,如:"hello"等等

  • 定义常量方法:两种方法1.使用#define预处理器 2.使用const关键字

###修饰符类型

  • signed

  • unsigned

  • long

  • short

  • const
    ###赋值语句
    C++中还有一种不同的初始化语法,称为“构造函数语法”
    例:

    double rate(0.07),time,balance(0.0);
    这是因为:以运算符(=)进行初始化这个操作系衍袭自C语言。如果对象属于内建型别,或者对象可以单一值加以初始化,这种方式就没有问题,例如:

    string name = “Fibonacci”;
    但是对象需要多个初始值,这种方式就没办法完成任务了。以标准库中的复数(complex number)类为例,它需要两个初始值,一个是实部,一个是虚部。以下就是用来处理“多值初始化”的构造函数初始化语法:

    #include
    complex purei(0, 7);

小数点后位数控制

cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout.precision(2);

图例为保留两位小数,改变(2)的数字即可改变小数位数
##2.2输入和输出
输入流是提供计算机并有程序使用的一系列输入。“流”表明程序将以相同的方式处理所有输入,无论这些输入从何而来。输出流同样如此,是程序生成的一系列输出。

  • <<符号是插入运算符

    using namespace std;
    特定的using指令表明程序准备会用std命名空间。命名空间不是一个名称集合,它代表了一个C++代码主体,其中指定了某些名称的含义,命名空间的作用是将所有C++名称规范划分成不同的集合(称为命名空间),使用命名空间的每一个名称都有一个“规范”(一个定义),命名空间对名称进行划分,但和那些命名空间配合的还有大量的C++代码

2.3 数据类型

基本内置类型

类型关键字
布尔型bool
字符型char
整型int
浮点型float
双浮点型double
无类型void
宽字符型wchar_t

C++也允许定义其他类型的变量,比如枚举、指针、数组、引用、数据结构、类等等

typedef声明

可以使用typedef为一个已有的累死你个去一个新的名字,例如下面语句会告诉编译器,feet是int的另一个名称:

typedef int feet;

枚举类型

枚举类型:枚举类型(enumeration)是 C++ 中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。
定义格式:

enum <类型名> {<枚举常量表>};

应用举例:

enum color_set1 {RED, BLUE, WHITE, BLACK}; // 定义枚举类型color_set1
enum week {Sun, Mon, Tue, Wed, Thu, Fri, Sat}; // 定义枚举类型week

enum Weekday{SUN,MON,TUE,WED,THU,FRI,SAT};//定义枚举类型weekday
 //SUN=0,MON=1,依次为0,1,2,3.....

sring类

C++缺乏原生数据类型来直接操作字符串,但在string类的帮助下,可以声明一个string类型的变量来进行操作
用cin将数据读入字符串,在两个字符串之间可以用“+”符号可将两个字符串连接成一个更长的。
例如:

string day,day1,day2;
day1="Monday";
day2="Tuesday";
day=day1+day2;

会连接成以下字符串:

"MondayTuesday"

array(数组)和vector(向量)

  • 要定义array,我们必须指定array的尺度大小——即array所能储存的元素个数。array的尺度必须是一个常量表达式,也就是一个不需要再执行期计算其值的表达式。例如:

    int pell_seq[18];

  • 至于定义vector object,我们首先必须含入vector头文件。vector是个class template(类模板),所以我们必须在类名称之后的角括号内指定其元素型别,其尺度则写在小括号中:此处所给出的尺度并不一定得是个常量表达式例如:

    #include
    vector pell_seq(seq_size);

引用

引用是隐式的指针,引用就是给一个变量起一个别名,格式为 数据类型 & 引用名 = 变量名;
这里的&并不是取地址符号,而是起标识作用,引用声明之后,相当于目标变量有两个名称

int a = 10;
int &b = a;

对a与b进行操作,都会改变内存中的数据。

注意

  1. 引用在定义时必须初始化,如int &b;语句是错误的
  2. 引用在初始是只能绑定左值,不能绑定常量,如int &b = 10;是错误的
  3. 引用一旦初始化,其值就不能更改,即不能再做别的变量的引用
  4. 数组不能定义引用,因为数组是一组数据,不能定义其别名

指针与引用的区别
指针是一种数据类型而引用不是,指针可以转换为它所指向的变量的数据类型,如下:

int a = 10;
int *p = &a;
double *pd = (double*)p;

经过转换,pd指针就可以指向double类型数据,而引用则必须要和目标变量的数据类型相同,无法进行数据类型转换。

2.4运算符

算数运算符

+、-、*、/、%、++、–

关系运算符

==、!=、>、<、>=、<=

逻辑运算符

&&、||、!

位运算符

&、|、^的真值表:

pqp&qplqp^q
00000
01011
11110
10011

赋值运算符

=、+=、-=、*=、/=、%=

杂项运算符

运算符描述
sizeofsizeof 运算符返回变量的大小。例如,sizeof(a) 将返回 4,其中 a 是整数。
Condition ? X : Y条件运算符。如果 Condition 为真 ? 则值为 X : 否则值为 Y。
,逗号运算符会顺序执行一系列运算。整个逗号表达式的值是以逗号分隔的列表中的最后一个表达式的值。
.(点)和 ->(箭头) 成员运算符用于引用类、结构和共用体的成员。
Cast强制转换运算符把一种数据类型转换为另一种数据类型。例如,int(2.2000) 将返回 2。
&指针运算符 & 返回变量的地址。例如 &a; 将给出变量的实际地址。
*指针运算符 * 指向一个变量。例如,*var; 将指向变量 var。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值