基础数据

一、标识符命名规则(通用:变量/数组/函数)

1. 核心规则

合法标识符只能由英文字母(大小写)、数字、下划线_组成,且不能以数字开头,不能是C++关键字

  • ✅ 合法:five_star、_fiveStar、_1、__、cin、endl、printf
  • ❌ 非法:five-Star(减号)、1a(数字开头)、X.cpp(点)、X#cpp(井号)、int(关键字)

2. 关键字与非关键字区分

  • 关键字:int、for、do、if、else、true、false、char、double、bool
  • (非关键字,不推荐):cin、cout、printf、scanf、endl、abs、swap(这些是库函数/对象,不是语言关键字)

3. 其他规则

  • C++严格区分大小写:first和First是两个不同变量

二、变量与常量基础

1. 基本数据类型对照表

类型变量占用字节常量示例
整数int / long long4 / 8-1、0、123
浮点数float / double4 / 8-1.0、0.0、12.345
字符char1'3'、'#'、'\n'
布尔bool1true、false
字符串--"hello"、""(空字符串)

2. 常量进制前缀(必考)

前缀进制示例
0b二进制0b0、0b1010
0八进制03、0123
0x十六进制0x3、0xAF
  • 易错:cout << 012 + 1 输出11,不是13,注意到12前面有个0,不能正常当12用就行,考过一次。

3. 常量易错点

  1. 字符常量:单引号只能包单个字符,转义符\n算1个字符;不存在空字符''
    注意单引号里括多个字符问题,比如cout<<'hello';语法也是通过的,能运行,但无法正常输出hello,会输出一个数字。
  2. 字符串常量:双引号包裹,可以为空"";奇数对双引号都是合法的,偶数对报错

    • ✅ """hello"""(3对)
    • ❌ ""hello""(2对)
  3. 默认类型:整数默认都是int,浮点数默认都是double

三、变量核心特性

  1. 必须先定义后使用,定义时指定类型,运行中类型永久固定
  2. 类型转换是临时转换,只改变本次运算的值,变量本身类型不变
  3. 混合运算自动类型提升:

    • int + long long → long long
    • float + double → double
    • int + double → double

四、类型转换

  • C++支持合法的类型转换,例如需要一个整数的地方写个字符一般也可以,因为字符可以变成整数。
转换场景规则示例
整数→浮点数无缝转换,小数补0double d = 2; → d=2.0
浮点数→整数去尾法,直接丢小数,不四舍五入int n = 1.9; → n=1
整数↔字符基于ASCII码:'0'=48、'A'=65、'a'=97char c=97; → c='a'
布尔→整数true=1,false=0int x=true; → x=1
整数→布尔0→false,非0→truebool b=-5; → b=true
浮点数→布尔0.0→false,非0.0→truebool b=3.14; → b=true
字符串→其他双引号字符串无法转换为其他类型"1"*2 编译报错
字符→其他单引号字符可以转换为整数'1'*2=98

强制类型转换

  • ✅ 正确语法:(类型)数据 或 类型(数据)

    • 例:(int)'A'、int('A')
  • ❌ 错误语法:省略括号直接写 类型 数据

    • 例:int 'A' 编译报错

五、高频考点

说法对错说明
for不能做变量名✅是C++关键字
cin不能做变量名❌是iostream对象,不是关键字
变量名可以以下划线开头✅_、_1都是合法的
空字符串""不存在❌双引号可以为空
"""hello"""是合法字符串✅奇数对双引号合法
浮点数转int会四舍五入❌直接截断小数部分
int 'A'是合法强制转换❌必须加括号:int('A')
"1"*2会编译报错✅字符串不能和整数运算
'1'*2结果是98✅'1'的ASCII码是49

标签: none

评论已关闭