✏️ 纠错
第 178 题 / 共 201 题
2. 已知a为int类型变量,p为int*类型变量,下列表达式不符合语法的是()。
你真棒!
📝 题目解析
答案:B
知识点:指针运算与逻辑运算
解析:int*类型的指针变量不能直接进行乘法运算(p * p语法错误);a * a是整数乘法,a && a和p && p是逻辑与运算(指针非空则为真),均符合语法。
A. a*a→整数相乘,语法合法。
B. p*p→指针存储地址,地址之间的乘法无意义,C++不允许指针相乘,语法错误。
C. a&&a→a会被隐式转换成布尔值(非0为true,0为false),逻辑与运算合法。
D. p&&p→指针非空时为true,空指针为false,逻辑与运算合法(判断指针是否非空)。
知识点:指针运算与逻辑运算
解析:int*类型的指针变量不能直接进行乘法运算(p * p语法错误);a * a是整数乘法,a && a和p && p是逻辑与运算(指针非空则为真),均符合语法。
A. a*a→整数相乘,语法合法。
B. p*p→指针存储地址,地址之间的乘法无意义,C++不允许指针相乘,语法错误。
C. a&&a→a会被隐式转换成布尔值(非0为true,0为false),逻辑与运算合法。
D. p&&p→指针非空时为true,空指针为false,逻辑与运算合法(判断指针是否非空)。