GESP三级 变量考察点

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

1. 核心规则

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

  • ✅ 合法:five_star_fiveStar_1__cinendlprintf
  • ❌ 非法:five-Star(减号)、1a(数字开头)、X.cpp(点)、X#cpp(井号)、int(关键字)

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

  • 关键字intfordoifelsetruefalsechardoublebool
  • (非关键字,不推荐)cincoutprintfscanfendlabsswap(这些是库函数/对象,不是语言关键字)

3. 其他规则

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

二、变量与常量基础

1. 基本数据类型对照表

类型变量占用字节常量示例
整数int / long long4 / 8-10123
浮点数float / double4 / 8-1.00.012.345
字符char1'3''#''\n'
布尔bool1truefalse
字符串--"hello"""(空字符串)

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

前缀进制示例
0b二进制0b00b1010
0八进制030123
0x十六进制0x30xAF
  • 易错: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 longlong long
    • float + doubledouble
    • int + doubledouble

四、类型转换

  • 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=1false=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

评论已关闭