C_C++
numenshane1
啥都懂点,啥都不精!
殊途同归
展开
-
几种数组排序方法及二维数组作参数传递
定义一个整型数组a[n],下面用五种方法对其从小到大排序。 (1)“冒泡法” 冒泡法大家都较熟悉。其原理为从a[0]开始,依次将其和后面的元素比较,若a[0]>a[i],则交换它们,一直比较到a[n]。同理对a[1],a[2],...a[n-1]处理,即完成排序。下面列出其代码: void bubble(int *a,int n) /*定义两个参数:数组首地址与数组大小*/ { int i,j转载 2010-02-09 11:13:00 · 2888 阅读 · 1 评论 -
pointer trick
<br />I’ve been exploring/reading more about C pointers (mostly from this source) and I’ve found the following interesting tricks.Trick 1 – Pointer ArithmeticsQuestion <br />What is the result of running the following code? Collapse Copy Codevoid trick1()转载 2010-06-01 11:52:00 · 441 阅读 · 0 评论 -
数组名退化问题
char szString[20];memset(szString,0x0,sizeof(szString));memset(&szString,0x0,sizeof(szString));我一开始觉得不可能,但把szString和&szString的地址打印出来有确实相同。最后在C FAQ上找到了答案,在C语言中的大多数表达式中,数组名都会退化为一个指向数组首元素的指针,但有3个例外:1)作为sizeof的参数的时候。2)作为&的操作数的时候。3)用字符串常量初始化的字符串数组。虽然szString和&s转载 2010-07-24 11:12:00 · 1152 阅读 · 1 评论 -
C/C++头文件
<br /> 传统 C++ <br /><br />#include <assert.h> //设定插入点 <br />#include <ctype.h> //字符处理 <br />#include <errno.h> //定义错误码 <br />#include <float.h> //浮点数处理 <br />#include <fstream.h> //文件输入/输出 <br />#include <iomanip.h> //参数化输入/输出 <原创 2010-07-15 16:40:00 · 1069 阅读 · 0 评论 -
organizing code files in C & C++
http://www.gamedev.net/reference/programming/features/orgfiles/page2.asp 通过四个pitfall讲解头文件的由来和好处,以及使用头文件定义inline func and template. Remember that, as far as the compiler is concerned, there is ab转载 2010-05-10 15:56:00 · 558 阅读 · 0 评论 -
auto_ptr &auto_ptr_ref
在《C++标准程序库》p55,提到了auto_ptr使用了一个技巧,能够copy和复制non-const auto_ptr,但不可以copy和复制const atuo_ptr。//auto_ptr的源码:template struct auto_ptr_ref{ _Tp1* _M_ptr; explicit auto_ptr_ref(_Tp1* __p):转载 2010-04-28 11:29:00 · 691 阅读 · 0 评论 -
extern修饰的变量是全局的吗?-----应该是吧!引用可以作为返回值,但输入参数最后也是引用。
首先要说明的是:在C++中,.h 文件中的“变量定义”,如 int n,确切的说应该叫做“变量声明”,其实它并没有被定义。只有在 .cpp 文件中的才叫做“变量定义”。extern的使用:.h 文件中extern int n 就是要告诉包含该头文件的 .cpp 文件,这个变量n是在外面定义的。在所有包含这个 .h 文件的 .cpp 文件中,这个变量n只能出现一次定义int n。这个变量在任何一原创 2010-03-30 12:07:00 · 818 阅读 · 0 评论 -
成员初始化列表
类对象的构造顺序是这样的: 1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员初始化阶段可以是显式的或隐式的,取决于是否存在成员初始化表。隐式初始化阶段按照声明的顺序依次调用所有基类的缺省构造函数,然后是所有成员类对象的缺省构造函数。 2.进入构造函数后在构造函数中执行一般计算 计算阶段由构造函数体内的所有语句构成。在计算阶段中,数据成员的设置被认为是赋值,而不是初始化。 使用初始化列表有原创 2010-02-11 10:25:00 · 492 阅读 · 0 评论 -
c/c++中堆栈的区别
一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)转载 2010-02-11 10:23:00 · 476 阅读 · 0 评论 -
曾经的百度面试
C or C++实现静态栈:not thread safe//stack.hconst int stackSize=256;static int g_top=stackSize-1;static int g_stack[stackSize];bool push(int aData);bool pop(int &aData);//stack.cpp#include "原创 2010-02-10 13:06:00 · 553 阅读 · 0 评论 -
曾经的NOKIA面试题
“知不知,上;不知知,病。圣人不病,以其病病。夫唯病病,是以不病。”1 find out the wrong definition of array. A int A[] B int A[]={1,2,3,4,5}; C int A[10]={0} D int A[10]2 give descripti原创 2010-02-10 21:17:00 · 2581 阅读 · 0 评论 -
一种可并发读写的队列实现
typedef struct LIST{struct LIST* next;int data;}list,*pList;typedef stuct QUEUE{pList head;pList tail;}que,*pQue;bool InitQue(pQue queue){}bool releaseQue(pQue queue){原创 2010-02-10 17:19:00 · 1596 阅读 · 0 评论 -
A Static C++ Object-Oriented Programming (SCOOP) Paradigm Mixing Benefits of Traditional OOP and GP
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.2.8789http://wenku.baidu.com/view/b7dd8f7931b765ce050814c9.html翻译 2010-12-08 17:14:00 · 532 阅读 · 0 评论