📅  最后修改于: 2023-12-03 14:39:40.356000             🧑  作者: Mango
在C语言中,存储类和类型限定符会影响变量的声明和使用方式。在本篇文章中,我们将探讨存储类和类型限定符的问题19。
以下代码片段中,x 和 y 的初始值是多少?
#include <stdio.h>
int main() {
int x = 0;
int y = 0;
if(x = 5 || y = 10) {
printf("x = %d, y = %d", x, y);
}
return 0;
}
x = 1, y = 0
在if的条件语句中,我们使用了赋值运算符“=”,而不是等于运算符“==”。所以条件表达式先执行了赋值运算,在将赋值结果当做条件判断。
因为x = 5的结果为真(非零,即使是1),条件表达式的值为真,所以整个if语句都会执行。而y的值依旧是0,因为y = 10这条语句没有被执行。
因此,在输出语句中,x的值为1(因为x = 5的结果为真),y的值为0(因为y = 10没有被执行)。
在C语言中,掌握存储类和类型限定符的使用方法是很重要的。要特别小心赋值运算符“=”和等于运算符“==”的区别,避免出现类似问题19的错误。