随笔分类 -  C/C++

[C Tips] 数组名一定代表指向数组第一个元素的指针--------吗?
摘要:无数的教科书都几乎没有严肃认真的面对这个问题。数组名就一定代表指向数组第一个元素的指针吗?猜猜下面的代码输出是怎么样的:[代码]如果你发现结果数组参数和数组参数第一个元素的地址不一样,不要太吃惊,请在两个my_func里面打印看看*(&ca)和*(&pa)的内容看看。如果你在此时用sizeof看看参数数组的大小你会更吃惊的,自己试试吧;-) 阅读全文

posted @ 2009-08-30 19:25 J.D Huang 阅读(887) 评论(2) 推荐(0) 编辑

左值,右值,数组和指针
摘要:左值,右值,数组和指针为什么a=b?在常见的C风格的语言中,有一些细微的差别是容易被忽视的,而正是这些看似非常简单的知识,有时候会成为我们理解程序,理解计算机行为的瓶颈。比如表达式:a=b;这样的表达式在大多数编程语言中都是合法的,它是一个简单的赋值表达式,那么它如何来表示赋值的意思呢?通俗的来说,为什么当你敲下a=b这样的几个字符并运行程序,执行这条语句后a的值会是赋值前b的值?这样的问题也许会... 阅读全文

posted @ 2009-08-19 13:03 J.D Huang 阅读(2139) 评论(0) 推荐(1) 编辑

lambda表达式与函数指针
摘要:猜猜下面两部分C#代码的输出是什么:(一)[代码](二)[代码]如果你是一个C++程序员, 也许上面并不是个陌生的用法, 因为C++里面可以使用函数指针,如下:[代码]但是C#里面没有, 不过C#里面有委托. 它起着类似的作用, Lambda表达式的值是委托类型, 第一个例子里面什么输出也没有, Print函数简单返回了一个委托(Action类型), 也可以看作是指向函数Funtion(){Con... 阅读全文

posted @ 2009-05-30 12:02 J.D Huang 阅读(2115) 评论(2) 推荐(0) 编辑

[C Tips]善待无符号数
摘要:猜猜下面代码的输出是什么? Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->#include int array[] = {1,2,3,4,5,6,7,8,9,10};#define TOTAL_ELEMENTS sizeof(array)/sizeo... 阅读全文

posted @ 2009-04-13 16:36 J.D Huang 阅读(520) 评论(6) 推荐(0) 编辑

C++的构造函数和析构函数
摘要:构造函数提供了一种机制,通过它有机会完成必要的初始化工作,从而使对象成为有意义 的存在物,而不仅仅只是一块原始的空间。 但是,我们逐渐了解到,构造函数具有的地位,不仅对于用户(程序员),对于编译器履 行职责也极为重要。通过这个机制,它让C++的一些基本的特性,如继承、多态得到了正确 的贯彻和表现。 首先不难理解的一点是在构造函数中,要确保基类对象的正确构造,如果是从基类继承的 话。因为继承类对... 阅读全文

posted @ 2007-11-16 22:11 J.D Huang 阅读(981) 评论(0) 推荐(0) 编辑

C语言拾遗
摘要:还记得大一的时候,最后一次C语言课结束的时候,何老师说:“C语言是世界上最美丽的语言”。无奈自己当时造诣太浅,未能领悟到其中真谛。而今我有幸再度拾起C语言,有种温故而知新的感觉,学着留下一点记录吧。 阅读全文

posted @ 2007-09-05 01:19 J.D Huang 阅读(354) 评论(0) 推荐(0) 编辑

[C Tips] getch(),getche()和getchar()
摘要:getch(),getche()和getchar() 阅读全文

posted @ 2007-07-19 15:58 J.D Huang 阅读(318) 评论(0) 推荐(0) 编辑