Posted on 2007-08-17 19:39
花之剑 阅读(231)
评论(0) 编辑 收藏 所属分类:
c/c++ & algorithm
static 在函数内部,表示该变量的值在各个调用间一直保持延续性 在函数这一级,表示该函数对本文件可见
extern 用于函数的定义,表示全局可见(属于冗余) 用于变量 表示它在其他地方定义
X>>4 等与X/2^4
.的优先级高于* *p.f=*(p.f)=*(p->f)
[]高于* int *ap[]=int *(ap[]);
函数()高于* fp是个函数,返回int* int *(fp())
算术运算符号高于位运算符 msb<<4+lsb=msb<<(4+lsb);
逗号运算符在所有运算符中的优先级最低 i=1,2=(i=1),2; 最后i=2;
gets并不安全,可能会导致堆栈覆盖的问题,因此可以采用fgets代替gets
例如:
char a[20];
fgets(a,20,stdin);//从标准输入中读取
fgets(a.20,fp) //从文件中读取
用fgets读取的一个特点是在a[strlen(a)-1)中的字符为\n,如果想过滤掉的话
可以采用a[strlen(a)-1]='\0'
sizeof(c)是指分配的空间大小,而strlen是里面存在多少个非 \0字符
写入到标准输出采用fputs(c,FILE *FP)
第三章 声明
初始化指针内存的字符串常量被定义为只读,如果试图通过指针修改这个字符串的值,程序会出现未定义的行为。
为了加快运算速度,可以将频繁使用的局部变量声明为register变量,只有局部自动变量才能做为寄存变量
用extern声明外部变量
a.out文件里面包含数据段和文本段 数据段存放全局变量和静态变量,文本段存放的是程序指令
寄存器变量只适合于函数的形式参数和自动变量 速度快 小
由于硬件的问题 对寄存器变量会有一些限制 在每一个函数中只有少量的变量可以放在寄存器中