上一页 1 2 3 4 5 6 ··· 36 下一页
  2013年3月19日
摘要: unsigned,unsinged int,unsigned long,size_t还是std::size_t?首先四种类型都是无符号类型,是用以表示元素个数或者数组索引的最佳类型。在作为函数参数时,不需像有符号类型那样检测值是否小于零。1.::size_t还是std::size_t请使用std::size_t,因为你处于C++的世界。在此,所有C++标准库组件用以表示元素个数的类型(比如size()或者operator[])都是std::size_t。std::size_t count = array.size(); // array是typedef vector<int>std 阅读全文
posted @ 2013-03-19 15:18 dartagnan 阅读(459) 评论(0) 推荐(0) 编辑
  2013年3月18日
摘要: 一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 程序结束后由系统释放。 4、文字... 阅读全文
posted @ 2013-03-18 10:23 dartagnan 阅读(351) 评论(0) 推荐(0) 编辑
  2013年2月20日
摘要: 1. C语言动态分配二维数组(1)已知第二维Code-1char (*a)[N];//指向数组的指针a = (char (*)[N])malloc(sizeof(char *) * m);printf("%d\n", sizeof(a));//4,指针printf("%d\n", sizeof(a[0]));//N,一维数组free(a);(2)已知第一维Code-2char* a[M];//指针的数组int i;for(i=0; i<M; i++)a[i] = (char *)malloc(sizeof(char) * n);printf(&qu 阅读全文
posted @ 2013-02-20 21:16 dartagnan 阅读(432) 评论(0) 推荐(0) 编辑
  2013年2月6日
摘要: 以下内容转自:http://blog.csdn.net/21aspnet/article/details/1535570printf、sprintf与fprintf 的用法区分1.printf 是和标准输出文件(stdout)关联的,fprintf 则没有这个限制.2.fprintf是用于文件操作的,原型是int fprintf( FILE *stream, const char *format [, argument ]...);3.sprintf是格式化输出到一个字符串,fprintf是格式化输出到一个stream,通常是到文件。intfprintf(FILE*stream,constch 阅读全文
posted @ 2013-02-06 19:42 dartagnan 阅读(777) 评论(0) 推荐(0) 编辑
  2013年2月5日
摘要: 在用 Eclipse CDT 编写c程序时出现 `for' loop initial declaration used outside C99 mode 错误是因为加 -std=c99 选项C99标准支持下面这种for 循环的变量i的定义及初始化方式:for (int i=1; i<10; i++){ printf("Hello C!");}C99标准之外的C标准支持下面这种for 循环的变量i的定义及初始化方式:int i=1;for (i=1; i<10; i++){ printf("Hello C!");}解决办法:右键点击项目 阅读全文
posted @ 2013-02-05 17:31 dartagnan 阅读(6561) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/npy_lp/article/details/7009120===================================== 前言:计算机语言是编译器和程序员交流的依据和规范,GNU C是GCC特有的功能,在Linux内核中被广泛应用。 帮助文档:http://gcc.gnu.org/onlinedocs/gcc-4.6.2/gcc/C-Extensions.html#C-Extensions 1、零长数组 GNU C允许声明长度为零的数组,但它只能被用于结构体的最后一个成员。 举例,如清单1:[cpp]view plaincopy#... 阅读全文
posted @ 2013-02-05 17:28 dartagnan 阅读(403) 评论(0) 推荐(0) 编辑
  2012年12月13日
摘要: 很长很杂 阅读全文
posted @ 2012-12-13 20:33 dartagnan 阅读(381) 评论(0) 推荐(0) 编辑
摘要: 这些东西有点烦,有点无聊。如果要去C++面试就看看吧。几年前网上搜索的。刚才看到,就整理一下,里面有些被我改了,感觉之前说的不对或不完善。 阅读全文
posted @ 2012-12-13 20:30 dartagnan 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 关于全局/局部变量,静态/非静态变量的问题总结:http://wenku.baidu.com/view/6390cf3610661ed9ad51f3ba.html一、c程序存储空间布局 C程序一直由下列部分组成: 1)正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令; 2)初始化数据段(数据段)——在程序中所有赋了初值的全局变量,存放在这里。 3)非初始化数据段(bss段)——在程序中没有初始化的全局变量;内核将此段初始化为0。 4)栈——增长方向:自顶向下增长;自动变量以及每次函数调用时所需要保存的信息(返回地址;环境信息)。 5)... 阅读全文
posted @ 2012-12-13 18:30 dartagnan 阅读(6101) 评论(0) 推荐(0) 编辑
摘要: 1. 全局变量的初始化对于不同编译单位的全局变量,其初始化的顺序没有任何的保证,因此对不同编译单位里的全局变量,在它们的初始化顺序之间建立依赖性都是不明智的。此外也没办法捕捉到全局变量初始化抛出的异常,一般来说要减少全局变量的使用,特别是限制那些要求复杂初始化的全局变量。 1,尽量不用全局变量 2,用静态变量,通过访问器进行访问 例如:全局变量 int a = 5; int b = a; 如果a,和b定义在同一个文件里,那没什么问题,结果b等于5. 如果a和b定义在不同文件里,就不能保证b也等于5,也就是说不能保证a先初始化.事实上,除了在同一个文件定义的全局对象的初始化是按照定义次序来进行的 阅读全文
posted @ 2012-12-13 18:27 dartagnan 阅读(5014) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 36 下一页