整型与布尔型的转换
题目描述
将一个整型变量的值赋给一个布尔型变量,再将这个布尔型变量的值赋给一个整型变量,得到的值是多少?
输入格式
一个整型范围内的整数,即初始时整型变量的值。
输出格式
一个整数,经过上述过程后得到的结果。
样例 #1
样例输入 #1
3
样例输出 #1
1
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<stdbool.h>
int main(){
int m;
bool n;
scanf("%d",&m);
n=m;
m=n;
printf("%d\n",m);
}
关于C语言bool类型的一些性质的讨论:
1.bool类型只有0和1两个数值,从此题我们就不难验证。
2.bool类型所占用的空间只有一个字节,这就为我们验证一些非0即1的算法题提供了方便,我们来看以下代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<stdbool.h>
int main(){
int a[10];
bool b[10];
printf("%d %d\n",&a[0],&a[1]);
printf("%d %d\n",&b[0],&b[1]);
return 0;
}
运行结果
由于bool类型所占用的字节较少,bool类型在对于需要开数组极大的运算中也有奇效,例如在应用于DFS或者BFS中时可以节省大量的空间,这个在以后刷到此类题目的时候再展开说下。