易截截图软件、单文件、免安装、纯绿色、仅160KB

c陷阱与缺陷阅读笔记

【1】 “ = ”的优先级低于  “ || ” 且 “ = ” 为右结合性,注意一下代码为死循环:while(c=' '||c=='\t'||c=='\n')

程序本意是跳过空格,制表符,换行符,但由于不小心将c=='  '写成了c= '  '导致程序进入死循环
【2】a=-1 在很老的C版本里理解为 a =-  1
【3】单引号代表一个整数,如a='a'或0141或97
【4】a++不能作为左操作符,a+++++b  =  (a++) + (++b)
【5】void add()  ====  void (*add)()              *add()  ==== *  add()
【6】void (*signal(int,void(*)(int)))(int)  (好复杂)
      typedef void (*HANDLER)(int)
      HANDLER signal(int,HANDLER) (太难理解了,而且不知道自己理解的对否!)
【7】两个二的倍数相加可用按位或代替 1+2=1|2
【8】结构体成员选择符>单目运算符(类型转换符是单目)>双目运算符(运算>移位>关系>逻辑>赋值>条件(其实是三目的))>逗号
【9】main 默认返回值为int
【10】震撼消息:C实际上是不支持二维数组的,所谓的二维数组实际上是元素为数组的一维数组,不过这就容易理解一点东西,比如:
      a[10][10]    a[2]实际是第三行第一个元素的地址a[2]+1是第四行第一个元素的地址
【11】
#include<stdio.h>
void main()
{
int i,a[10];
for(i = 1;i<=10;i++)
{
a[i]=0;
}
}

简单吧,不过是死循环,数组越界覆盖了的i值
【12】推荐a>=0&&a<9写法
【13】注意g((x,y))  先求x再求y,但x被舍弃了  不同于 g(x,y)
【14】int mid=(hi+lo)/2    ===>   int mid =(hi+lo)>>1
【15】在很多机器上下标运算是比指针运算要慢的!


相关文档:

linux+vim+gcc+gdb开发C/C++程序环境搭建

我用的是ubuntu操作系统。打开终端
1.sudo apt-get install vim(vim-full 这个软件自9.10版本被废弃了,不论怎么添加软件源都找不到的,所以直接安装vim就可以了,,也可以安装gvim,,在新立得软件里面搜索vim就可以找到了)
2.
sudo apt-get install build-essential // build-essential是c语言的开发包,包含了gcc ma ......

C中的空


1.   什么是空指针常量(null pointer constant)?
[ 6.3.2.3-3] An integer constant expression with the value 0, or such an expression cast to type void *, is called a null pointer constant.
这里告诉我们:0、0L、'\0'、3 - 3、0 * 17 (它们都是“integer constant expression”)以及 ......

c默认是传值的

在c中,参数默认是传值的,即在参数入栈时被复制一份
。在函数里面修改这些参数,不会影响外面的调用者。
例如
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void get_str(char * p)
{
    p = (char *)malloc(sizeof("abcd"));
    s ......

标准 C I/O

   标准 C I/O
函数列表:
clearerr() 清除错误
fclose() 关闭一个文件
feof() 如果到达文件尾(end-of-file)返回"True"(真)
ferror() 检查一个文件错误
fflush() 书写输出缓存的内容
fgetc() 从流获取一个字符
fgetpos() 获取文件位置指针
fgets() 从一个流获取一串字符
fopen() 打开一个文件 ......

C输出格式总结

C输出格式总结
2007-07-08 12:09
1 一般格式
   printf(格式控制,输出表列)
   例如:printf("i=%d,ch=%c\n",i,ch);
   说明:
   (1)“格式控制”是用双撇号括起来的字符串,也称“转换控制字符串”,它包括两种信息:
    &nbs ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号