面试题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;
2
}
注意:应特别注意在int、指针型变量和“零值”比较的时候,把“零值”放在左边,这样当把“==”误写成“=”时,编译器可以报错,否则这种逻辑错误不容易发现,并且可能导致很严重的后果。
面试题3:sizeof和strlen的区别
sizeof和strlen有以下区别:
sizeof是一个操作符,strlen是库函数。
sizeof的参数可以是数据的类型,也可以是变量,而strlen只能以结尾为‘