04 2012 档案

C++ typedef用法
摘要:[C++语法] 关键字typedef用法(转)C/C++语言中的typedef相信大家已经不陌生,本文对C/C++语言关键字typedef的各种用法作一个介绍。typedef,顾名思义,为“类型定义”,可以解释为:将一种数据类型定义为某一个标识符,在程序中使用该标识符来实现相应数据类型变量的定义。例如:typedef unsigned int UINT;int main (int argc, char *argv[]){unsigned int a;// it’s OKUINT b;// it’s OK, a and b are of the same type (int)// . . .// 阅读全文

posted @ 2012-04-20 22:48 Gentoo 阅读(315) 评论(0) 推荐(0)

C++中的栈区,堆区,常量区
摘要:#include<iostream.h>void main() { char a[]="abc";栈 char b[]="abc";栈 char* c="abc";abc在常量区,c在栈上。 char* d="abc"; 编译器可能会将它与c所指向的"abc"优化成一个地方。 const char e[]="abc";栈 const char f[]="abc";栈 cout << a << " " 阅读全文

posted @ 2012-04-16 19:55 Gentoo 阅读(639) 评论(0) 推荐(0)

C++内存
摘要:C++内存管理——内存分类 MoaKap 在编写程序过程中,程序员必须清楚程序内存的分配机制,合理进行内存管理,这样才能得到高效的程序。同时,如果对C++内存分配基本概念不理解,使用不当,一方面浪费了宝贵的内存资源,降低了程序运行效率,另一方面还会造成程序中意想不到的错误。在C++程序中,把内存分为4类,程序存储区、静态数据存储区、运行时栈、自由存储区或堆:1、 程序存储区包含所有函数及成员函数的机器指令。函数一旦被编译,即被编译为特定得机器指令,存放在程序存储区。当程序运行时,从内从中读取并执行指令。这部分内存不允许更改,在一般情况下,指针不会指向内存代码段中的位置。但也有特殊,如指向函数的 阅读全文

posted @ 2012-04-16 17:09 Gentoo 阅读(288) 评论(0) 推荐(0)

关于指针与数组
摘要:/*第一种情况*/string p[6]="Plato";*p="abc";//声明string数组时需带大括号;/*第二种情况*/string p[6]={"Plato"}; *p="abc";//*p指向的是string的第一个元素p[0],而p[0]元素为string类型,正好被*p整个替换掉,所以此时p[0]和*p相同且都为“abc”;/*第三种情况*/char p[5]="Plato";*p="abc";//字符数组出现溢出错误;/*第四种情况*/char p[6] 阅读全文

posted @ 2012-04-16 16:10 Gentoo 阅读(160) 评论(0) 推荐(0)

常量指针和指针常量
摘要:// 指针常量和常量指针//1)指针常量可以通过指针改变变量的值 Int x =2; Int *const point =&x; *point =4; //now x = 4 void main() ...{ char*const str ="china"; *str ="yangzhou"; // right 可以修改字符串的内容 str ="another"; // wrong } //2)常量指针不可以 Int x =2; Const int* point =&x; *point =4; // wrong voi 阅读全文

posted @ 2012-04-16 13:49 Gentoo 阅读(259) 评论(0) 推荐(0)

Vector简介
摘要:标准库Vector类型使用需要的头文件:#include <vector>Vector:Vector 是一个类模板。不是一种数据类型。 Vector<int>是一种数据类型。一、 定义和初始化Vector<T> v1; //默认构造函数v1为空Vector<T> v2(v1);//v2是v1的一个副本Vector<T> v3(n,i);//v3包含n个值为i的元素Vector<T> v4(n); //v4含有n个值为0的元素二、 值初始化1> 如果没有指定元素初始化式,标准库自行提供一个初始化值进行值初始化。2> 阅读全文

posted @ 2012-04-15 22:02 Gentoo 阅读(295) 评论(0) 推荐(0)

getline,cin,ignore
摘要:getline:可读入包含空格在内的字符串,以回车作为结束符,输入完回车之后缓存区内的第一个字符为回车;cin:以读入缓存区内的字符,以空白符作为结束(eg:空格符,回车符)ignore(int n,int d):跳过n个字符,在n个字符之前有d则提前结束,无参时跳过一个字符之前学习的时候定义一个字符串s再用函数getline(cin, s)可以读取一个到换行符结束的字符串,但是今天做的联系中这个函数却被自动忽略了。#include <iostream>#include <string>using namespace std;int main(){ int a; str 阅读全文

posted @ 2012-04-15 21:51 Gentoo 阅读(447) 评论(0) 推荐(0)

CClientDC和CDC的区别
摘要:HDC是Windows的一种数据类型,是设备描述句柄;CDC是MFC封装的Windows 设备相关的一个类;CClientDC是CDC的衍生类,产生对应于Windows客户区的对象,在构造的时候调用GetDC,在析构的时候调用ReleaseDC;CWindowDC也是CDC的衍生类,在构造的时候调用GetWindowDC,在析构时调用ReleaseDC,可访问CWnd的整个屏幕,包括客户去和非客户区。以画线为例,上面几种DC的使用代码如下:HDC hDC; hDC = ::GetDC(m_hWnd); MoveToEx(hDC,m_ptOrigin.x,m_ptOrigin.y,NULL); 阅读全文

posted @ 2012-04-15 11:10 Gentoo 阅读(2980) 评论(0) 推荐(0)

C++编程对缓冲区的理解
摘要:C++编程对缓冲区的理解 韩耀旭什么是缓冲区 缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区。 缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区。为什么要引入缓冲区 我们为什么要引入缓冲区呢? 比如我们从磁盘里取信息,我们先把读出的数据放在缓冲区,计算机再直接从缓冲区中取数据,等缓冲区的数据取完后再去磁盘中读取,这样就可以减少磁盘的读写次数,再加上计算机对缓冲区的操作大大快于对磁盘的操作,故应用缓冲区可大大提高计算机的运行速度。 又比如,我们使用打印机打印文档,由于打印机 阅读全文

posted @ 2012-04-14 20:40 Gentoo 阅读(267) 评论(0) 推荐(0)