C/C++编程小知识(杂记)

条件与:&&

if(x && y):先判断 x 是否为 true。若 x 为 true ,再接着判断 y,若 x 为 false,则不用判断 y 直接跳过 if 语句内容。
易出错点:数组或内存溢出 (RE:Runtime Error)

举例说明:
正确代码

//逆序输出前4个arr元素不为0的数
//若小于0则不输出
#include
int arr[10]={
     -1,2,3,4,5,6}, n=3;
int main(){
     
	for(int i=0; i<=100; i++){
     
		if(n-i>=0 && arr[n-i]>0){
     
			printf("%d",arr[n-i]);
		}
	}
	return 0;
}

错误代码

#include
int arr[10]={
     -1,2,3,4,5,6}, n=3;
int main(){
     
	for(int i=0; i<=100; i++){
     
		if(arr[n-i]>0 && n-i>=0){
     
			printf("%d",arr[n-i]);
		}
	}
	return 0;
}

先判断 arr[n-i] 是否为负数
arr [ 负数 ]:这种情况是未定义的,越界访问。

你可能感兴趣的:(答题细节,c++,c语言)