C++基础

本文介绍了C++编程的基础知识,包括程序编译流程、基本数据类型及其范围、运算符与表达式、类型转换与溢出、变量与常量的声明、定义和初始化。此外,还详细讲解了变量命名规则、作用域以及输入输出的函数如scanf和printf,以及C++中的cin和cout。内容深入浅出,适合初学者入门。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 程序编译流程

源代码→预处理器→编译器→汇编器→链接器→可执行代码

2. 数据类型

2.1 基本数据类型

类型范围
char1个字节-128到127或者0到255
unsigned char10~255
signed char4-128~127
int4-2147483648~2147483647
unsigned int40~4294967295
signed int4-2147483648~2147483647
short int2-32768~32767
unsigned short int20~65.535
long int8-32768~32767
signed long int8-
unsigned long int8-
float4-
double8-
long double8-

二进制中的一位一个比特(bit)
8个二进制构成的二进制串为一个字节(byte)
char、short、int、long的最高位是符号位,1表示负数,0表示非负数

2.2 运算符和表达式

赋值运算符:=、+=、-+、=、/=、%=、<<=、>>=、&=、^=、|=
算术运算符:+、-、

关系运算符:==、!=、>、<、>=、<=
逻辑运算符:&&、||、!

**位运算符:

  • &(按位与:同为1时为1,否则为0)
  • |(按位或:只要有一个为1,则为1)
  • ^(异或:不同为1,相同为0)
  • ~(按位取反:0变1,1变0)
  • <<(将二进制串左移若干位,高位舍弃,低位补0)
  • “>>”(将二进制串右移若干位,低位舍弃,高位补0)

其他运算符:*(解引用)、&(取地址)、.(成员运算符)、->(成员运算符)、sizeof等

2.3 类型转换和溢出

当有不同类型的数据参与运算时,表达式的值的类型,以操作数中精度高的类型为准

自动转换:有些不同的数据类型之间是相容的,可以相互赋值,这叫做数据类型的自动转换,如字符型向整型的转换:int a = ‘a’;cout << a;//打印’a’a的ASCLL码,即97.

高精度数据类型向低精度数据类型强制转换会造正数据损失

溢出:数据进行加减乘等操作,导致中间部分或者最终结果超出结果类型所能表示的范围,就叫做溢出。溢出部分会被计算机丢弃,从而造成数据丢失或者程序出错

3 变量和常量

3.1 概念

变量是一个代称,在程序运行过程中系统会为数据分配可操作的存储区,变量就代表了那片内存空间,对变量的访问本质上就是对其内存空间的访问
常量是在程序运行过程中不会发生改变,而且一眼就能看出其值的量
特殊常量:字符常量,以’‘开头,如’\n’、'\r’等,成为转义字符

变量的声明、定义、初始化

  • 变量声明需要出现在所有使用该变量的语句之前,用于向编译器告知该变量的类型和名称
  • 变量定义告诉编译器该变量创建的位置以及该变量的类型,变量可以被多次声明,但只能在某个文件或函数中定义一次
  • 变量初始化即为向变量指向的内存空间赋值
  • 当需要在多个文件内使用且只在一个文件内定义一个变量时,往往使用extern关键字来声明该变量,并在某个文件内实现它
  • 除了基本数据类型外,C++也允许自定义变量,如枚举,指针,数组,引用,结构体,类等

3.2 命名规则

变量必须以字母或者下划线开头,大小写敏感
常量可以用#define预处理指令,或者使用const关键字

3.3 标识符作用域

变量名、函数名、类型名统称为“标识符”。一个标识符能够起作用的范围,称为标识符的作用域。对于变量来说,在函数内部(包括形参)成为局部变量,在所有函数外面成为全局变量

static和extern
通过在定义时使用static关键字修饰,可以将全局变量或者局部变量定义为静态变量,静态变量数据存放于全局数据区,在程序运行过程中只初始化一次,且生命周期一直到程序结束
使用extern可以在其他文件内得到已被定义的变量或函数的引用,然而该变量或函数被static修饰后,只能作用于声明所在的文件,extern失效。

4 输入与输出

4.1 printf和scanf

int scanf(const char *format, …)函数从标准输入流stdin读取输入,并根据format来浏览输入
int printf(const char *format, …)函数把输出写入到标准输出流stdout,并根据format产生输出

4.2 cin和cout

C++使用流操作,主要头文件为,该头文件定义了cin、cout、cerr和clog对象,对应于标准输入流,标准输出流,非缓冲标准错误流,和缓冲标准错误流

cin、cout速度比scanf、printf慢,输入输出数据量大时用后者
cout和printf不建议混用
cout流的维护比printf要高一层,cout要到回车或流刷新时才会输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值