7.读c语言深度剖析 -- if else
2011-11-07 10:50
197 查看
if、else组合
简单的看下面几个简单的问题:
1 bool变量与“零值”进行比较
bool变量与“零值”进行比较的if语句怎么写?
bool bTestFlag= FALSE
if(bTestFlag); if(!bTestFlag);
2 float变量与“零值”进行比较的if语句怎么写?
floatfTestVal=0.0;
if((fTestVal>=-EPSINON) && (fTestVal <= EPSINON));
//EPSINON为定义好的精度。
3 指针变量与“零值”进行比较的if语句怎么写?
int*p=NULL;//定义指针一定要同时初始化,指针与数组那章会详细讲解。
if(NULL ==p); if(NULL != p); NULL写在前边(
编译器认为if (p = NULL)是合法的但会指出if (NULL = p)是错误的,NULL不能被赋值)
4 C语言有这样的规定:else始终与同一括号内最近的未匹配的if语句结合。
5 if语句后面的分号
if(NULL !=p);
fun();
这里的fun()函数并不是在NULL !=p的时候被调用,而是任何时候都会被调用。
相当于
if(NULL !=p)
{
;
}
func(); 因为编译器会把这个分号解析成一条空语句
6语句结构
if( )
.....
else if( )
.....
else if( )
.....
else
如果if中的条件为真,则执行if中的代码块;条件为假,则判断第一个if
else后的条件,
为真执行其中代码,否则再判断第二个if else分支的条件...如果if、if
else//第一个、if else//第二个的条件都不满足,
则执行最后的else中的代码....
--------------------------------------------------------------------------------------------------
面试题1:变量的声明和定义有什么区别
为变量分配地址和存储空间的称为定义,不分配地址的称为声明。一个变量可以在多个地方声明,
但是只在一个地方定义。加入extern 修饰的是变量的声明,说明此变量将在文件以外或在文件后面部分
定义。
说明:很多时候一个变量,只是声明不分配内存空间,直到具体使用时才初始化,分配内存空间,
如外部变量。
面试题2:写出bool 、int、float、指针变量与“零值”比较的if 语句
bool 型数据:
if( flag )
{
A;
}
else
{
B;
}
int 型数据:
if( 0 != flag )
{
A;
}
else
{
B;
}
指针型数:
if( NULL == flag )
{
A;
}
else
{
B;
}
float 型数据:
if ( ( flag >= NORM ) && ( flag <= NORM ) )
{
A ;
}
注意:应特别注意在int、指针型变量和“零值”比较的时候,把“零值”放在左边,这样当把“==”
误写成“=”时,编译器可以报错,否则这种逻辑错误不容易发现,并且可能导致很严重的后果。
相关文章推荐
- C语言比较两个数的大小使用if-else语句和条件运算符
- C语言深度剖析--读书笔记6_return关键字
- C语言预处理命令之条件编译(#ifdef,#else,#error,#endif,#if...)
- C语言深度剖析--运算符
- 读c语言深度剖析 -- volatile
- 读c语言深度剖析 -- 宏定义(2)
- 深度剖析C语言自增自减运算
- Objective--C语言预处理命令之条件编译(#ifdef,#else,#endif,#if等)
- 读c语言深度剖析 -- typedef小结(3) 定义结构体
- C语言中条件编译命令(#if #else #endif)(
- c语言 习题5.8参考答案(第一种解法,用if~else~语句)
- C语言深度剖析
- C语言的条件编译#if, #elif, #else, #endif、#ifdef, #ifndef
- C语言深度剖析--读书笔记_void 关键字
- C语言深度剖析--读书笔记7_const关键字
- 1.读c语言深度剖析 -- 运算符的优先级
- C语言的条件编译#if, #elif, #else, #endif、#ifdef, #ifndef
- 《c语言深度剖析》整理--关键字
- 读c语言深度剖析 -- if else
- C语言_用if```else语句解决奖金发放问题