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

C技巧拾遗~

1. 怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回指向字符的指针的函数的指针的数组?
这个问题至少有以下3 种答案:
1. char *(*(*a[N])())();
2. 用typedef 逐步完成声明:
typedef char *pc;  /* 字符指针*/
typedef pc fpc(); /* 返回字符指针的函数*/
typedef fpc *pfpc; /* 上面函数的指针*/
typedef pfpc fpfpc(); /* 返回函数指针的函数*/
typedef fpfpc *pfpfpc; /* 上面函数的指针*/
pfpfpc a[N]; /* 上面指针的数组*/
2. *p++ 自增p 还是p 所指向的变量?
后缀++ 和-- 操作符本质上比前缀一目操作的优先级高, 因此*p++ 和*(p++) 等价, 它自增p 并返回p 自增之前所指向的值。要自增p 指向的值, 使用(*p)++, 如果副作用的顺序无关紧要也可以使用++*p。
拓展:
void func()
{
int i = 2;
int j = 5;
int *p = &i;
printf("result :%d\n",*(--p));
}
输出:
result :5
原因:栈是向低地址扩展的数据结构!
3.怎样判断机器的字节顺序是高字节在前还是低字节在前?
有个使用指针的方法:
int x = 1;
if(*(char *)&x == 1)
printf("little-endian\n");
else
printf("big-endian\n");


相关文档:

关于C/C++中内存空间的划分

CAPTION: 关于C/C++中内存空间的划分
AUTHOR: aIsland 摘自中国IT实验室
DATE: 2010-05-30
E-MAIL: aIsland@live.cn
QQ: 418662213
P.S.
     1.Bolanlan|随心high|aIsland 三个网名均为本人
     2.声明aIsland 所收录的所有文章其著作权都属于原创作者
   ......

用c实现背包问题(贪心)

好久以前做的一个程序,贪心策略实现背包问题,c实现。
总结在这里,以备以后和别人查找。
//背包问题
#include "stdio.h"
#define MAX 10
void main()
{
 int w[MAX]={0,10,130,15,60,25};      //存放质量
 int v[MAX]={0,30,5,10,20,25};   //存放价值
 flo ......

C preprocessor

http://en.wikipedia.org/wiki/C_preprocessor
C preprocessor
from Wikipedia, the free encyclopedia
Jump to:navigation, search
The C preprocessor (cpp) is the preprocessor for the C programming language. In many C implementations, it is a separate program invoked by the compiler as the first part ......

C rule

例) 危険なコーディング
1                char cStr[256];
2                ZeroMemory(cStr, sizeof(cStr));
3      &nb ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号