C语言小知识(1)
1、包含头文件
<>是在标准库里面找
“ ”是在当前目录下找头文件,找不到的话会在便准库里面找
2.整数,指针,实数,BOOL变量和零值比较
整数:
int num;
if(num==0)
if(0==num)可以用于规范错误
if(num=0)编译器不会报错!
指针
char *ptr;
if(ptr==NULL)
if(ptr!=NULL)
指针的”0”用NULL 表示空指针
实数
实数没有绝对的0,因此采用近似值(无限趋近)
#define EPSIN 0.000001
float num2;
if((num2>=-EPSION)&&(num2<=EPSION))
BOOL
布尔模型只有0和1
BOOL flag;
if(flag)
if(!flag)
3、sizeof用法,strlen用法
sizeof是运算符,其用法:
sizeof(…)是运算符,参数可以是数组、指针、类型、对象、函数等。
它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。
由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所占的空间,返回值跟对象、结构、数组所存储的内容没有关系。
具体而言,当参数分别如下时,sizeof返回的值表示的含义如下:
数组——编译时分配的数组空间大小;
例如:char str1[]=”absde”;输出:sizeof(str1)=6;(“abcde”中共有a b c d e \0六个字符)
char str2[8]={‘a’,};输出:sizeof(str2)=8; (str2已经定义成了长度是8的数组,所以sizeof(str2)为8)
指针——存储该指针所用的空间大小(存储该指针的地址的长度,是长整型,应该为4);
例如:char *str=”absde”;输出:sizeof(str)=4(在C/C++中一个指针占4个字节)
类型——该类型所占的空间大小;
对象——对象的实际占用空间大小;
函数——函数的返回类型所占的空间大小。函数的返回类型不能是void。
strlen:
strlen(…)是函数,要在运行时才能计算。参数必须是字符型指针(char*)。当数组名作为参数传入时,实际上数组就退化成指针了。
它的功能是:返回字符串的长度。该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL。返回的长度大小不包括NULL。
char arr[10] = “What?”;输出:sizeof(arr) = 10;strlen(arr) = 5