If语句中零值比较的注意点:
1、 bool型变量应该直接出现于条件中,不要进行比较
2、 普通变量和0或者常数比较时,0或常数应该出现在比较符号左边
3、 Float型变量不能直接进行0值比较,需要定义精度
bool b=TRUE;
if(b)
{
}
int i=1;
if(0==i)
{
}
#define EP 0.00000001
float f=0.0;
if((A-EP<=f)&&(f<=A+EP))
{
}此处A=0;
case语句排列顺序分析:
1、 按字母或数字顺序排列各条语句
2、 正常情况放在前面,异常情况放在后面
3、 default语句只用于处理真正的默认情况
break和continue的区别
1、 break表示终止循环的执行,用来跳出一个块即{}之间的语句
2、 continue表示终止本次循环,进入下次循环
柔性数组即数组大小待定的数组
C语言中可以由结构体产生柔性数组
柔性数组即数组大小待定的数组
C语言中可以由结构体产生柔性数组
struct SoftArray
{
intlen; //指明数组大小
intarray[]; //数组元素,可以不写大小
};
下面给出柔性数组的应用:
#include<stdio.h>
#include<malloc.h>
typedef struct _soft_array
{
int len;
int array[]; //一般认为大小为0
}SoftArray; //所以这个数组大小为4
int main()
{
int i = 0;
SoftArray*sa = (SoftArray*)malloc(sizeof(SoftArray)+sizeof(int)*10);
sa->len = 10; //数组长度
for(i=0;i<sa->len;i++)
{
sa->array[i] = i+1;
}
for(i=0;i<sa->len;i++)
{
printf("%d\n",sa->array[i]);
}
free(sa);
return 0;
}
下面给出一个比较经典的代码:
有一个数列,其中的自然数都是以偶数的形式出现,只有一个自然数出现的次数为奇数次。编写程序找出这个自然数
你自己先默想三分钟,想想看自己会怎么实现
三分钟
#include<stdio.h>
#define DIM(a) (sizeof(a)/sizeof(*a))//求出数组有多少个元素
int main()
{
int a[]={2,3,5,7,2,2,2,5,3,7,1,1,1};
int find=0;
int i=0;
for(i=0;i<DIM(a);i++)
{
find=find^a[i];
}
printf("find=%d\n",find);
return 0;
}
在头文件里写了下面的这个,不管会不会多次包含,编译器只用了一次
#ifndef _TEST_H_
#define _TEST_H_
...
#endif
#error用于生成一个编译错误消息,并停止编译
用法:#error message //message不需要用双引号包围
#error编译指示字用于自定义程序员特有的编译错误消息,类似的,#warning用于生产编译警告,但不会停止编译
#line用于强制指定新的行号和编译文件名,并对源程序的代码重新编号
用法:#line number filename //filename可省略
例如在一个大工程里,你自己写了一段小代码,用#line1 “my pro”这样就从下一行开始计数
报错的行号也改了,不过这一般是把代码写在一个文件里才用line,现在都可以写自己的模块然后用链接
1万+

被折叠的 条评论
为什么被折叠?



