C语言、C++编程技术馆

C语言,C++编程,C语言开发应用,C++开发应用,VC++编程, C++Builder编程,C语言教程,C++教程,C语言开发教程,C++开发教程,VC++教程, C++Builder教程,C++培训,C语言培训,编程培训
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2010年10月19日

摘要: 1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。 在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。 至于typedef有什么微妙之处,请你接着看下面对几个问题的具体阐述。 2. typedef & 结构的问题 当用下面的代码定义一个结构时,编译器报了一个错误,为什么呢?莫非C语言不允许在结构中包含指向它自己的指针吗?请你先猜想一下,然后看下文说明: typedef struct tagNode 阅读全文

posted @ 2010-10-19 20:26 teiller2008 阅读(2111) 评论(0) 推荐(0) 编辑

摘要: 概述 Joel Spolsky认为,对指针的理解是一种aptitude,不是通过训练就可以达到的。虽然如此,我还是想谈一谈这个C/C++语言中最强劲也是最容易出错的要素。 鉴于指针和目前计算机内存结构的关联,很多C语言比较本质的特点都孕育在其中,因此,本篇和第六、第七两篇我都将以指针为主线,结合在实际编程中遇到的问题,来详细谈谈关于指针的几个重要方面。 指针类型的本质分析 1、指针的本质 指针的本质:一种复合的数据类型。下面我将以下面几个作为例子进行展开分析: a)、int *p;b)、int **p;c)、int (*parValue)[3];d)、int (*pFun)(); 分析: 所. 阅读全文

posted @ 2010-10-19 20:25 teiller2008 阅读(2093) 评论(0) 推荐(0) 编辑

2010年10月13日

摘要: 在c语言的操作符中共有15个优先级,具体排列如下:Operators Associativity() [] -> . left to right! ~ ++ -- + - * (type) sizeof right to left* / % left to right+ - left to right<< >> left to right< <= > >= left to right== != left to right& left to right^ left to right| left to right&& l 阅读全文

posted @ 2010-10-13 15:45 teiller2008 阅读(4253) 评论(0) 推荐(0) 编辑

摘要: 1、找错void test1(){ char string[10]; char* str1="0123456789"; strcpy(string, str1);} 这里string数组越界,因为字符串长度为10,还有一个结束符‘\0’。所以总共有11个字符长度。string数组大小为10,这里越界了。 PS:使用strcpy函数的时候一定要注意前面目的数组的大小一定要大于后面字符串的大小,否则便是访问越界。void test2(){ char string[10], str1[10]; for(i=0; i<10;i++) { str1[i] ='a' 阅读全文

posted @ 2010-10-13 15:44 teiller2008 阅读(4524) 评论(0) 推荐(0) 编辑

摘要: C++中虚函数调用采用所谓的虚函数表(vtable)实现,对于简单的单继承,其实现如下图所示:(其中ClassA为ClassB的基类,详见深入浅出MFC P68) 对于这种情况,显然可以想到,vtable直接定位到对象的函数即可 你也许会想到:C++支持多继承,在多继承的情况下,vatble以及内存布局该如何实现? 以下也许就是你想要的答案 代码:C继承于A和B,运行环境VC6.0class A...{public: int a, b; virtual void show();};class B...{public: int a, b; virtual void show();};class. 阅读全文

posted @ 2010-10-13 15:43 teiller2008 阅读(3435) 评论(0) 推荐(1) 编辑

摘要: 单例模式也称为单件模式、单子模式。使用单例模式,保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出等。 单例模式有许多种实现方法,在C++中,甚至可以直接用一个全局变量做到这一点,但这样的代码显得很不优雅。《设计模式》一书中给出了一种很不错的实现,定义一个单例类,使用类的私有静态指针变量指向类的唯一实例,并用一个公有静态方法获取该实例。如下面的类定义:class CSingleton:{ // 其它成员public: static CSingleton * GetInstance() { if (m_pInstanc. 阅读全文

posted @ 2010-10-13 15:43 teiller2008 阅读(3654) 评论(0) 推荐(0) 编辑

摘要: 做c/c++编程的对#include指令都不会陌生,绝大多数也都知道如何使用,但我相信仍有人对此是一知半解, C: #include <stdio.h> C++: #include <iostream> 表示包含C/C++标准输入头文件。包含指令不仅仅限于。h头文件,可以包含任何编译器能识别的C/C++代码文件,包括。c,。hpp,。cpp,。hxx,。cxx等,甚至。txt,。abc等等都可以 2.名词解释 preprocess 预处理:为方便编译器处理而设置的一种机制,包括一些常用预处理指令和语句,我们统称为预处理系统。 如#include #define #if… 阅读全文

posted @ 2010-10-13 15:41 teiller2008 阅读(4551) 评论(0) 推荐(0) 编辑

摘要: 一、sizeof() 1.sizeof的使用:sizeof操作符以字节形式给出了其操作数的存储大小。 sizeof操作符不能用于函数类型,不完全类型或位字段。不完全类型指具有未知存储大小的数据类型,如未知存储大小的数组类型、未知内容的结构或联合类型、void类型等。 2.sizeof的结果:sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。 int、unsigned int 、short int、unsigned short 、long int 、unsigned long 、float、do. 阅读全文

posted @ 2010-10-13 15:39 teiller2008 阅读(4375) 评论(0) 推荐(0) 编辑