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

20100531 《C陷阱与缺陷》第三章读书笔记

  今天是5月的最后一天了,2010年的5月,倒霉的一个月终于要过去了。今天抽空我又读完了第三章,顺便做下笔记。
  这一章的题目叫做---语义“陷阱”
  程序也有可能表面看上去是一个意思,实际上的意思却相去甚远。
  对于数组:
  C语言中只有一维数组,数组的大小必须在编译期就作为一个常数确定下来。多维数组是利用了C语言中数组元素的类型可以是任意的,当然也可以是一个数组。所以可以“仿真”出多维数组。对于一个数组,我们能够制定它的大小,并且获得指向该数组的下标为0的元素的指针。数组的下标操作其实就是对指针的操作。
将数组作为函数参数毫无意义,C语言会自动将作为参数的数组声明转换为相应的指针声明。
数组中实际不掺在“溢界”元素的地址位于数组所占内存之后,这个地址可以用于进行赋值和比较。但是引用时非法的。
  指针:
  int a[10]; a是一个拥有10个整型元素的数组,a是数组元素首地址。
int b[10][12];b是一个拥有10个整型数组元素(每个元素含有12个整型元素)的数组,b是指向数组的数组的指针。b[n],是数组b[n]中下标为0的元素的地址。
int *p;p是指向整型的指针,可以用p=a;
int (*m)[12];m是一个指向有12个整型元素的数组的指针,可以用m=b;
对于字符串指针,其末尾是一个空字符'\0'作为结束标志。
使用malloc开辟空间的时候,需要注意检查是否开辟成功,使用完成后要显示的释放内存空间。
指针是指向内存地址的,指针所指向的内容可以是任意类型。
对于C编译器,将常数0转换而来的指针不等于任何有效的指针,用NULL代替(#define NULL 0).当常数0被转换为指针使用时,这个指针绝对不能被解除引用(dereference),也就是说,绝对不能企图使用该指针所指向的内存中存储的内容。
  边界
C语言中一个拥有n个元素的数组,却不存在下标为n的元素,它的元素下标范围是从0到n-1。下界可以取到,上界取不到的情况,元素个数就是拿上界减去下界(不对称边界);上下界都能取到,元素个数为则用上界-下界+1.
其他:
对于有符号数判断其是否溢出:if(a>INT_MAX-b)   complain();
函数不加类型,默认为 int型,一个返回值为整形的函数如果返回失败,实际上是隐含的返回了某个“垃圾”整数。
希望以后能用到,好累啊。。


相关文档:

纯Java版工行B2C网银接口调用总结

1.首先看懂官方文档
2.icbc.jar这个jar包一定要要到!这是进行base64加密解密,以及
使用工行证书签名的重要工具类。
3.采取纯Java编码,要确保用对证书,放在D盘根目录下(其他路径亦可)。
4.编写JSP接口页面,字段必须与工行的一一对应。
而且如tranData等字段进行base64加密后或者签名后 必须以"“双引号扩上才 ......

linux常用c函数 文件权限控制篇

access(判断是否具有存取文件的权限)
  相关函数  stat,open,chmod,chown,setuid,setgid
  表头文件  #include<unistd.h>
  定义函数  int access(const char * pathname,int mode);
  函数说明  access()会检查是否可以读/写某一已存在的文件。参数mode有几种情况组合,R_OK ......

c和java中的二进制文件


最近需要写一段程序,完成以下的工作,用java将数据以二进制的形式写入文件中,然后用C读出此二进制文件。
开始的时候没有考虑机器的字节序,直接搞出segment fault.想了很久,才明白原来是java和C的字节序是不一样的。
java中的字节序是big endian的,它是与机器无关的。而c的字机序是机器相关的,而当前用的机器是x84 ......

strassen in c language.

#include<stdio.h>
#define N 8
void input(int n,int p[N][N])
{
 int i,j;
 for(i=0;i<n;i++)
 {
  printf("please input the %d line:\n",i+1);
  for(j=0;j<n;j++)
  {
  scanf("%d",&p[i][j]);
 }
}
 }
void output(int n,int p[N][N])
......

《C专家编程》学习总结2


《C专家编程》学习总结2
 
转自 : http://blog.chinaunix.net/u2/87570/showart_2120069.html
编译器做了些什么
 
                 图1:编译器通常分割成几个更小的程序
 
静态链接与动态链接
 
  ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号