C++ 基础
文章平均质量分 71
steven30832
程序员,还在上学
展开
-
c++中的static
C++中的static主要有两种用法,第一种是在普通的程序和函数中,第二种是用在类中。两种使用在核心思想上是一致的,但是又有一些地方需要注意。 一、非面向对象的static 1.声明为全局变量的static 例子: #include using namespace std; static int n; //static global variable i原创 2011-12-23 10:22:56 · 426 阅读 · 0 评论 -
C语言的位域
keyword: 位结构 节省存贮空间 “:”操作符 位域 一、首先说概念: 位结构是一种特殊的结构, 在需按位访问一个字节或字的多个位时, 位结构比按位运算符更加方便。 位结构定义的一般形式为: struct 位结构名{ 数据类型 [变量名]: 整型常数; //成员称为“位域”或者“位段” 数据类型 [变量名]: 整型常数; } 位结构变量; 其中: 数据类型必转载 2012-12-11 16:35:17 · 348 阅读 · 0 评论 -
内存分配的问题
union V { struct X { unsigned char s1:2; unsigned char s2:3; unsigned char s3:3; } x; unsigned char c; } v; v.c=100; printf("%d\n",v.x.s3); 输出是什么? 涉及到内存分配原创 2012-12-11 13:11:51 · 453 阅读 · 0 评论 -
C++中堆栈,堆和栈的区别
堆和栈的区别 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态转载 2012-12-06 22:15:44 · 5951 阅读 · 0 评论 -
【转帖】C++中的域结构体
有些信息在存储时,并不需要占用一个完整的字节,而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态,用一位二进位即可。为了节 省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域,并说明每个 区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的对象用一个字节的二进制位域来转载 2012-08-01 18:27:25 · 378 阅读 · 0 评论 -
数组指针与指针数组
数组指针(也称行指针) 定义 int (*p)[n]; ()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。 如要将二维数组赋给一指针,应这样赋值: int a[3][4]; int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。 p=a;转载 2011-12-29 22:48:43 · 276 阅读 · 0 评论 -
typedef用法小结
typedef用于定义类型的同义词,但实现机制和简单的宏转换是不一样的。 例如: #include using namespace std; typedef int* PINT; int main() { PINT pa , pb; int a = 0; int b = 0; pa = &a; pb = &b; return 0原创 2011-12-28 10:20:22 · 314 阅读 · 0 评论 -
cin.getline()与getline()
C++中有两个getline函数,这两个函数分别定义在不同的头文件中。 1.getline()是定义在中的一个行数,用于输入一行string,以enter结束。 函数原型:getline(cin,str); cin:istream类的输入流对象 str:待输入的string对象 example 1: //《C++ primary plus》第四章编程练习题1 #i原创 2010-11-11 16:18:00 · 16639 阅读 · 0 评论 -
C++中的const
一、const变量 定义一个变量为const,也就是常量,说明这个这个量是不可修改的,既然不可修改,就说明在定义的时候就要初始化。初始化可以用常量初始化,也可以用普通的变量初始化。例如: const int val = 10; int tmp = 20; const int val2 = tmp;cosnt变量的存储以及作用域,先看一段代码: #include using namespac原创 2011-12-23 12:12:20 · 316 阅读 · 0 评论 -
一段程序,用于了解C++复制构造函数、赋值构造函数和vector的运行实现机制
#include #include #include #include using namespace std; class Message; class Folder { private: string path; set message; public: Folder(string p):path(p){} ~Fold原创 2011-12-18 21:16:11 · 1379 阅读 · 0 评论 -
组合数求解
从N个数中选择k个,共有多少组合?简单说就是求解C(N,k)。 实际问题,有N个教授,要选择k个组成委员会,共有多少种组合方式? 递归法: 将这N个人按照编号从小到大排好, 1,2,3...,k,...N 现在考虑从前M个人中选择k个,那么有两种情况: 1. 第M个人选进去,那么就是从剩下的M-1个人中选择k-1个,再加上第M个组成; 2. 第M个人不选进去,那么就是直接从原创 2013-01-02 14:47:49 · 655 阅读 · 0 评论