C陷阱&缺陷
1.1= 与 ==
例1:
本例中循环语句的本意是跳过文件中的空格符、制表符、换行符
while(c=''||c=='\t'||c=='\n')
c=getc(f);
c= ''||c=='\t'||c=='\n'
死循环
例2:
if((filedesc==open(argv[i],0))<0)
error();
永远不会被调用
1.2 & 和 | 不同于&& 和||
1.3 C语言运算符
a---b <==> a-- -b
a - --b
y=x/*p 表示注释 -》y=x/(*p)
1.4 整型常量
1.5 字符和字符串
注:用单引号括起来的一个字符代表一个整数
用双引号括起来的一个字符代表一个指针
2.1 函数
float *g() , (*h)();
*g() 《==》*(g()) g是一个函数 该函数的返回值类型为指向浮点数的指针。
h是一个函数指针 ,h所指向的函数的返回值为浮点类型
3.1 指针 数组
struct
{
int p[4];
double x;
}b[17];
声明了b是一个拥有17个元素数组,其中每个元素都是一个结构体
*a 就是数组a中下标为0的元素引用。
*a=84;
清空数组
int month;
for(month=0;month<12;month++)
{
int day;
for(day=0;day<31;day++)
{
calendar[month][day]=0;
}
}
3.1 非数组的指针
库函数strlen返回参数中字符串所包括的字符数目,
而作为结束标志的空字符并未在计算在内,因此,strlen(s)
的值是n,那么字符串的实际需要n+1个字符空间。
char *r,*malloc();
r=malloc(strlen(s)+strlen(t)+1);
if(!r)
{
complain();
exit(1);
}
strcpy(r,s);
strcat(r,t);
/* 一段时间以后*/
free(r);
3.3 作为参数的数组声明
函数的声明:
int strlen(char s[])
{
/*具体声明*/
}
《==》
int strlen(char *s)
{
/*具体声明*/
}
main(int argc,char *argv[])
{
/*具体内容*/
}
《==》
main(int argc,char **argv)
{
/*具体内容*/
}
&nbs
相关文档:
C程序是由一组或是变量或是函数的外部对象组成的。 函数是一个自我包含的完成一定相关功能的执行代码段。下面小编和大家分享下C语言中的函数。
1. parsfnm函数
parsfnm函数的功能是分析文件名,其用法为:char *parsfnm (char *cmdline, struct fcb *fcbptr, ......
用函数access,头文件是io.h,原型:
int access(const char *filename, int amode);
amode参数为0时表示检查文件的存在性,如果文件存在,返回0,不存在,返回-1。
这个函数还可以检查其它文件属性:
06 &nbs ......
#define NULL 0
#define LEN 10
#define OK printf("\n此组数据合格。\n")
#define NO printf("\n此组数据不合格!\n")
#define CN printf("\n%30c 伟成工作室荣誉出品 %c\n",17,16)
#include "stdlib.h"
#include "math.h"
static float min,ave;
float *zwfloat(void ......