使用 && 运算符和 2 个变量在 if 语句中正确使用语法
Correct use of Syntax in if statement using && Operator and 2 variables
我有一个关于语法正确使用的快速问题,基本上我试图将这两个if语句总结为一个if语句。
if (sc.LastCallToFunction) {
if (p_LowRectanglesList != NULL) {
free(p_LowRectanglesList);
sc.PersistVars->i1 = 0;
}
if (p_HighRectanglesList != NULL) {
free(p_HighRectanglesList);
sc.PersistVars->i2 = 0;
}
return;
将其改写为:在语法上正确吗
if (sc.LastCallToFunction) {
if (p_LowRectanglesList || p_HighrectangleList != NULL) {
free(p_LowRectanglesList && p_HighRectanglesList);
sc.PersistVars->i1 && sc.PersistVars->i2 = 0;
}
return;
或者编译器不会接受这个/我的逻辑有问题吗?
你不能用的方法
if (p_LowRectanglesList || p_HighrectangleList != NULL)
这在逻辑上对第一个指针进行"或"运算(将其视为真或假),并将seond指针与NULL 进行比较
free(p_LowRectanglesList && p_HighRectanglesList);
这在逻辑上&;s将指针放在一起,然后尝试释放该操作的结果。即,您正试图释放"真"或"假"
sc.PersistVars->i1 && sc.PersistVars->i2 = 0;
这在逻辑上把这两件事结合在一起,结果是真或假,然后试图给它赋值0……根本没有任何意义。
此外,在您的原始代码中。。。。在空闲之后,您应该将p_LowRectanglesList=NULL;
相关文章:
- 1d 智能指针不适用于语法 (*)++
- 助记符和指向成员语法的指针
- 有人能分解一下这个c++模板的语法吗
- 初学者的 if 语句语法错误
- 返回语句中的构造函数语法
- 这个 typedef 语句中的语法在做什么
- 带有 or 表达式的 If 语句中的语法错误
- C++条件语句(语法正确)
- 插入语句的语法错误
- 此 for 循环语句的正确语法
- C/C++中#define的不同语法,包括许多语句
- 语法帮助:在 else-if 语句中全为零的行
- 如果 else 语句中的 C++ 错误,我的语法有什么问题
- 案例"p"的问题 ||"P":C++ switch 语句中的语法
- 我的代码中有一个错误,可能是语法或我找不到的 if 语句。编程新手
- 使用 && 运算符和 2 个变量在 if 语句中正确使用语法
- Char数组和if语句语法
- 这些语法正确的C++语句有任何意义吗
- QODBCResult::exec: 无法执行语句:"[Microsoft][ODBC SQL Server Driver]COUNT 字段不正确或语法错误
- switch 语句 - 修改 Duff 设备的语法 - 这是合法的 C/C++吗?