bool 数据类型
#define TRUE 1// #define FALAE 0 #define BOOL int Bool flag=1;
bool型 实质上是 int型
c89没有提供
c99 有提供
赋值时,应该给true或 false。
如果给一个非零值 则储存为1;
bool flag =tuue;
#include <stdio.h>
int main(int argc, const char * argv[])
{
bool y=1;
{
printf("%s",y?"true":"flase"); }//三元运算符
}
c语言的灵活性会带来程序的隐患,在某些现代高级语言中不允许这样写 1 if(i=9) 2 { 3 } MSAN发射火箭!
逻辑运算符
&&逻辑与: 两便同时为真;
#include <stdio.h>
int main(int argc, const char * argv[])
{
if(i>=0&&i<=100)
{
}
}
短路所谓短路现象就是使用逻辑运算符时候,当前面的逻辑运算结果已经能够决定整个运算条件的真假时就停止运算,后面的逻辑式都没有进行运算。
如:a==0 && b==0 && c==0;当a==0这个运算式为假时,后面的b==0 && c==0都不用算了,因为a==0为假就已经可以决定了整个逻辑条件为假。
如果要使用位运算符来代替逻辑运算符,如下:
a==0 & b==0 & c==0;这其实是几个bool类型数据进行位与操作,相当于1 & 1 & 1(这是全部逻辑表达式为真的情况),结果也是为1,当作为if条件时候,其实也和上面的没有区别。
使用逻辑运算符或位操作运算符来作为if的条件时候,并没有多大区别,主要是位操作符需要把每个逻辑式都运算,而逻辑运算就会出现短路现象,这可以说是加快了运算速度。
int a=3,b=5; A||B++; b=5//
if语句
三种形式 if() { 语句 }
#include <stdio.h> int main(int argc, const char * argv[])
{ char str; printf("请输入:m或f\n"); scanf("%s",&str); if (str==‘m‘) { printf("\n男性"); } else { printf("\n女性"); } }
//
#include <stdio.h> int main(int argc, const char * argv[]) { char str; printf("请输入:m或f\n"); scanf("%s",&str); if (str==‘m‘) { printf("\n男性"); } else if (str==‘f‘) { printf("\n女性"); } else { printf("\n未知性别"); } }
输入一个年份,判断是否闰年
#include <stdio.h> int main(int argc, const char * argv[]) { int year; printf("请输入年份"); scanf("%d",&year); if((year%4==0&&year%100!=0)||year%400==0) { printf("是闰年"); } else{ printf("不是闰年"); } }
键入一个字符 判断是字母还是
#include <stdio.h> int main(int argc, const char * argv[]) { printf("请输入字符"); char c; scanf("%c",&c); if(c<32) { printf("输入的控制字符"); } else if(c>‘0‘&&c<‘9‘) { printf("输入的是数字"); } else if(c>‘a‘&&c<‘z‘) { printf("输入的是小写"); } else if(c>‘A‘&&c<‘Z‘) { printf("输入的是大写"); } else { printf("输入的是其他"); } }