巩固C

回头重新复习巩固C时候发现了几个比较有趣的程序,算是补上了一些知识漏洞吧,稍微提一下。

1.1关于优先级

x=y>2

由于>运算符的优先级大于=
所以这行代码等同于

x=(y>2)

所以如果y>2,那么y>2的值为TRUE,然后把1赋给x;反之把0赋给x。

1.2关于while

慢慢习惯变量在判断条件中的形式

while(flag--)
1.3两者类似点

重点都在于C对于判断TRUE—>1;FALSE—>0 。因此能够利用这点去优化while的结构。

2.1后自增的理解

有这样一段代码

int i = 1;
while ( i++ < 3 );
	printf("%d", i );

这行代码有两个坑——第一个是while后面的“;”,第二个是判断条件。
首先是while后的“;” 这使while的执行语句为空,也就是printf是故意缩进的,它不是while的执行语句。实际上和下面的代码等价。

int i = 1;
while ( i++ < 3 )
	continue;
printf("%d", i );

第二个是自增问题:
……i = 2 —> 条件为真 —> i = 3 —> 条件为假 —> i = 4
所以最后输出的是一个4

2.2后自增的理解代码

int plus(int& i)
{
   
	int temp = i;
	i++;
	return temp;
}

3后记

又水了-_-||