摘要: 1、变量在声明时即分配内存,此时将根据变量的内存分配内存大小,如int类型4字节,float类型4字节,double类型8字节。如下例中的a.2、但对于数组,有以下几种情况(以int类型为例):(1)声明数组时即指定数组大小N,则此时可按N*sizeof(int)的大小分配内存。如下例中的c。(2)... 阅读全文
posted @ 2013-02-11 10:51 eagleGeek 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 1.内存分配方式 内存分配方式有三种: [1]从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 [2]在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运... 阅读全文
posted @ 2013-02-11 10:18 eagleGeek 阅读(395) 评论(0) 推荐(0) 编辑
摘要: 以下程序可用于把某个位置位、清零或测试某位为0还是1:#include #include int setbit(int num, int bit);int clearbit(int num, int bit);bool testbit(int num, int bit);int main(void)... 阅读全文
posted @ 2013-02-09 22:54 eagleGeek 阅读(448) 评论(0) 推荐(0) 编辑
摘要: (1)使用异或可简单加密数据,解密时使用加密后的数据与密钥重做一次异或运算即可。(2)由于某些操作系统不能正确处理非打印字符,因此,对于此类字符可采取原有不做加密。#include #include #define KEY 'z'int main(void){ char orig_char, new... 阅读全文
posted @ 2013-02-09 22:24 eagleGeek 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 1、枚举作为整数在系统内部,C语言会把枚举变量和常量作为整数来处理,默认情况下,编译器会把整数0、1、2、3……赋给特定枚举中的常量。如枚举city中,GZ、FS、SZ、DG分别被赋值0、1、2、3。而枚举变量C1被保存为0,C2为3……2、枚举值的取值范围当定义一个枚举变量时,其值可以为enum中... 阅读全文
posted @ 2013-02-08 11:22 eagleGeek 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 预处理指令大多数预处理指令都属于下面3种之一:(1)宏定义(2)文件包含(3)条件编译其它还有一些不常用的#error #line和pragma。宏定义(1)简单的宏#define PI 3.141592654(2)带参数的宏#define MAX(x,y) ((x)>(y)?(x):(y))宏定... 阅读全文
posted @ 2013-02-07 23:20 eagleGeek 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 发现很多人没有搞清楚这两个东西.有个错误的观点:认为Glib是GNU的东东.(因为前面那个"g"),而Glibc是Glib的一个子集. 其实,Glib和Glibc基本上没有太大的联系,可能唯一的共同点就是他们都是UNIX下C编程调用的库而已. Glib是GTK+调用的底层核心库.(GTK+由开发G... 阅读全文
posted @ 2013-02-07 22:22 eagleGeek 阅读(436) 评论(0) 推荐(0) 编辑
摘要: 我的选择:http://c-faq.com/index.html很多很多有用的信息,如书籍推荐、编译器介绍,在哪找到C库函数的源代码等,还有一些C语言的知识点。http://stackoverflow.com/questions/tagged/c?sort=votes&pagesize=15论坛ht... 阅读全文
posted @ 2013-02-06 21:52 eagleGeek 阅读(1377) 评论(0) 推荐(0) 编辑
摘要: 以下程序不小心在11行scanf()中把parr写成了*parr,在编译时没问题,但在运行时出现:[lujinhong@lujinhong chapter12]$ gcc reverse3.c[lujinhong@lujinhong chapter12]$ ./a.outEnter 10 numbe... 阅读全文
posted @ 2013-02-06 11:34 eagleGeek 阅读(3634) 评论(0) 推荐(0) 编辑
摘要: C 程序在进行中发生segment fault(core dump)错误,通常与内存操作不当有关,主要有以下几种情况:(1)数组越界。(2)修改了只读内存。(3)scanf("%d",n),n不是指针。……1. 前言:有的程序可以通过编译, 但在运行时会出现Segment fault(段错误). 这... 阅读全文
posted @ 2013-02-06 11:03 eagleGeek 阅读(383) 评论(0) 推荐(0) 编辑