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. ldexp函数
ldexp函数的功能是计算value*2的幂,其用法为:double ldexp(double value, int exp);程序实例如下:
......
C程序是由一组或是变量或是函数的外部对象组成的。 函数是一个自我包含的完成一定相关功能的执行代码段。下面小编和大家分享下C语言中的函数。
1. malloc函数
malloc函数的功能是内存分配函数,其用法为:void *malloc(unsigned size);程序实例如下:
#include <stdio.h>
#i ......
C程序是由一组或是变量或是函数的外部对象组成的。 函数是一个自我包含的完成一定相关功能的执行代码段。下面小编和大家分享下C语言中的函数。
1. normvideo函数
malloc函数的功能是选择正常亮度字符,其用法为:void normvideo(void);程序实例如下:
#include < ......
C函数要在程序中用到以下这些宏:
void va_start( va_list arg_ptr, prev_param );
type va_arg( va_list arg_ptr, type );
void va_end( va_list arg_ptr );
va_list:用来保存宏va_start、va_arg和va_end所需信息的一种类型。为了访问变长参数列表中的参数,必须声明
& ......
C程序是由一组或是变量或是函数的外部对象组成的。 函数是一个自我包含的完成一定相关功能的执行代码段。下面小编和大家分享下C语言中的函数。
1. setallpallette函数
setallpallette函数的功能是按指定方式改变所有的调色板颜色,其用法为:void far setallpallette(struct palette, fa ......