C++ primer plus 基础
简书成研
求实求真,大气大为
展开
-
4.3 指针,数组和指针算术之间关系
指针名在C和C++中解析为地址,C++中也将数组名解析为地址#include using namespace std;int main(){double wags[3]={1.0, 2.0,3.0};short stacks[3] = {3,2,1};//c++将数组名解析为地址double* wg = wags;short* wgs = &原创 2013-11-15 13:38:59 · 1353 阅读 · 0 评论 -
C++为什么不提倡使用scanf和printf函数
Effective C++ 中文版条款2 尽量使用 而不用最重要的原因当然是C++提供了流对象‘>>’和‘’,它们代表了新观念。流对象能输出对象,而printf函数和scanf函数不能。此外,起码还有下面两个次要原因。首先让我们观察一下printf函数和scanf函数的声明,它们分别是:int printf( char *, ...);原创 2014-02-10 22:10:12 · 4808 阅读 · 0 评论 -
linux 下 C/C++ 实现取得当前时间
C/C++ 实现取得当前时间#include#include#include#include#include#define N 10int main(int argc,char *argv[]){ FILE *fp; int line=0; char buf[N]; if((fp=fopen("test.txt","a"))==NULL) {原创 2014-02-11 12:06:00 · 5053 阅读 · 0 评论 -
4.2 结构(struct) 与共用体(union)
概念性的东西就没必要多说了,想必有一定的C基础都会知道结构体和共用体,当然这个不是我这次的重点,重点是程序员经常使用的!1 结构体说白了,就是将不同的类型组装起来,组装以后一般作为参数传递给函数(在C中要注意结构体一般初始化结构体,经常使用到malloc 分配空间,在bzero 基本就ok啦),当然也可以让函数返回一个结构体哈。待会可以贴一个C的例子参考(呵呵。学习C++貌似自己在回味原创 2013-11-08 14:47:23 · 1190 阅读 · 0 评论 -
& 符号有三种用法
个人区分引用还是地址比较模糊,给自己一个总结!1、类型&变量名,表示引用。2、数据&数据,表示按位相与。3、&变量名,表示地址。 区分的地方:1)引用在赋值=的左边,而取地址在赋值的右边,比如int a=3;int &b=a; //引用 int *p=&a; //取地址 2)和类型在一起的是引用,和变量在一起的原创 2014-02-12 10:03:20 · 9570 阅读 · 4 评论 -
虚函数和虚拟基类 用法小结
申明:本文主要参考MSDN虚继承:在继承定义中包含了virtual关键字的继承关系;虚基类:在虚继承体系中的通过virtual继承而来的基类;声明虚基类的一般形式为 class 派生类名: virtual 继承方式 基类名需要注意: 为了保证虚基类在派生类中只继承一次,应当在该基类的所有直接派生类中声明为虚基类。否则仍然会出现对基类的多次继承。将类A声明为虚原创 2014-03-14 09:54:17 · 1559 阅读 · 0 评论 -
十进制转换成十六进制、16进制转2进制
#include #include #include #include int main() { int i,v; char bs[33]; char b[33]; char hs[9]; char h[9]; char s[4]; char *e;// 十进制整数转二进制串; i=1024; ltoa(i,b,2原创 2014-04-29 09:55:16 · 3956 阅读 · 0 评论 -
数的某位置1 或置0
如何对数的某位置1 或置0#include #include using namespace std;#define setbit(x,y) x|=(1<<y) //将X的第Y位置1#define clrbit(x,y) a&=~(1<<1) //将X的第Y位清0//////int main()//{// int a=290;// char b[32原创 2014-03-25 16:37:18 · 1561 阅读 · 0 评论 -
什么是句柄什么是句柄对象
对象(object):是一件事、一个实体、一个名词,可以获得的东西,可以想象有自己的标识的任何东西。对象是类的实例化。一些对象是活的,一些对象不是。比如这辆汽车、这个人、这间房子、这张桌子、这株植物、这张支票、这件雨衣。 概括来说就是:万物皆对象。 句柄是:一个标识符,是拿来标识对象或者项目的。它就像我们的车牌号一样,每一辆注册过的车都会有一个确定的号码,不同的车号码各不相同,但是原创 2014-04-26 21:34:31 · 9331 阅读 · 0 评论 -
c、c++ 结构体的嵌套
c、c++ 结构体的嵌套/************************************************************************//* 嵌套结构体 * C++ **//*****************原创 2014-08-05 19:00:38 · 3911 阅读 · 0 评论 -
C、C++ 中 |、||、&、&&、异或、~、!运算详解
由于接触比较底层的数据处理对下面用的整理(参考网络)位运算 位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,得到位串信息的结果。位运算符有: &(按位与)、|(按位或)、^(按位异或)、~ (按位取反)。 其中,按位取反运算符是单目运算符,其余均为双目运算符。 位运算符的优先级从高到低原创 2015-01-14 13:00:52 · 28037 阅读 · 1 评论 -
c / c++ 结构体的定义与使用
头文件#pragma once#include using namespace std;typedef int(FUNCPTRPA)(int rIndex);typedef struct{ int a; int b;}TEST1;typedef struct{ FUNCPTRPA*fun_send; FUNCPTRPA*fun_reve; int yx;原创 2015-02-06 13:39:10 · 998 阅读 · 0 评论 -
函数指针,指针函数疑惑解析
本文的主要参考书籍是 C++ Primer需要注意:函数指针所指向的函数,必须为全局函数或类的静态函数。函数指针是指向函数起始地址的指针,一般可以认为是函数名的变量形式,如:void f(int i) {printf("%d", i-1);} //函数,f是常量void g(int i) {printf("%d", i+1);} //函数,g是常量voi原创 2014-02-11 10:52:16 · 1343 阅读 · 0 评论 -
虚函数 多重继承的构造函数的调用,虚函数地址的找法
虚函数地址的找法:#include "stdafx.h"#include using namespace std;class CBase{public: virtual void who(){cout<<"CBase"<<endl;}};class CDerived:public CBase{public: virtual void who(){cout<<"原创 2014-02-11 10:05:43 · 1242 阅读 · 0 评论 -
fopen fclose 示例解析
#include #include #include int main(int argc, char *argv[]){ FILE *fp1,*fp2; if(argc!= 3) { printf("comand error\n"); exit (-1); } fp1=fopen(argv[1], "r+"); if(NULL == fp1) { perr原创 2014-02-11 11:58:48 · 1383 阅读 · 0 评论 -
5 循环和关系表达式
对常见的语法问题不描述,主要对一些注意事项加以说明!类型别名在c++中为类型建立别名两种方式1 使用预处理#define char byte :char 替换所有的byte,使byte变成char的别名2 使用C++和C的typedef 关键字typedef char byte: char 替换所有的byte,使byte变成char的别名通用使用形式:typed原创 2013-11-18 14:23:06 · 1170 阅读 · 0 评论 -
2.2 函数的重载到模板的重载(例子)
1 函数重载1.1头文件#ifndef _TIME_#define _TIME_class Time{private: int hours; int minutes;public: Time(); Time(int h, int m); Time Add( Time &t1, Time &t2); void show(const Time原创 2013-12-09 10:38:11 · 1471 阅读 · 0 评论 -
4 .1 数组 章 复合类型
4.1 数组 数组和链表的原理区别:当有面试官问你的时候,我的回答很简单,数组就是在大小稳定,而链表也大小稳定(前提在C中),区别就是使用效率问题了撒,可以去分析链表和数组的存储方式吧。 总结:数组使用 很少或不插入和删除元素,就应该用数组 链表使用 需要经常插入和删除元素你就需要用链表数据结构了。 我将会把C与C++的使用方式对比,具体在使用效率与使用方法上原创 2013-11-06 16:48:59 · 1067 阅读 · 0 评论 -
1 C 编译阶段
一 C编译过程概述 目前Linux下最常用的C语言编译器是GCC(GNU Compiler Collection),它是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序.GCC不仅功能非常强大,结构也异常灵活.最值得称道的一点就是它可以通过不同的前端模块来支持a各种语言,如Java、Fortran、Pascal、Modula-3和Ada等原创 2013-11-14 20:53:40 · 1366 阅读 · 0 评论 -
4.5 数组,模板类vector和array的比较
数组,模板类vector和array比较原创 2013-11-17 14:14:22 · 2303 阅读 · 0 评论 -
C++ volatile关键字
volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。使用该关键字的例子如下:int volatile nVint; 当要求使用volatile 声明的变量的值的时候,系统总是重新从它所在的内存读取数据,即原创 2014-02-09 14:06:02 · 3782 阅读 · 0 评论 -
C++常类型(const 1)
本文的主要参考书籍是 C++ Primer常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。因此,定义或说明常类型时必须进行初始化。 一般常量和对象常量 1. 一般常量 一般常量是指简单类型的常量。这种常量在定义时,修饰符const可以用在类型说明符前,也可以用在类型说明符后。如: int const x=2; 或 c原创 2014-02-10 10:25:53 · 1156 阅读 · 0 评论 -
scanf函数的内存越界问题
scanf函数的参数部分要求对变量进行取地址,由此我们知道,我们对是这个变量所在的那块内存进行的操作,这里就会产生一个问题:内存越界:1.如:输入:12345结果:从结果看当scanf以%s字符串格式输入超过数组a[5]范围时,会发生内存越界。这样a[5]里的数据不能看做字符串,因为不是以\0结尾的,这种内存越界发生时,会出现莫名其妙的程序运行结果。2、%mc宽度内原创 2014-02-09 19:56:46 · 2676 阅读 · 0 评论 -
C++常类型(const 2)
本文的主要参考书籍是 C++ PrimeroK 有了前面的基础下面再来深入吧!使用const提高函数的健壮性 看到const关键字,C++程序员首先想到的可能是const常量.这可不是良好的条件反射.如果只知道用const定义常量,那么相当于把火药仅用于制作鞭炮.const更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体const是constan原创 2014-02-10 10:32:04 · 1065 阅读 · 0 评论 -
c++ extern的用法解析
引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方原创 2014-02-09 11:04:03 · 1498 阅读 · 0 评论 -
C++队列之动态分配数组
1 、队列之定义 队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表 (1)允许删除的一端称为队头(Front)。 (2)允许插入的一端称为队尾(Rear)。 (3)当队列中没有元素时称为空队列。 (4)队列亦称作先进先出(First In First Out)的线性表,简称为FIFO表。 队列的修改是依原创 2013-12-17 10:04:47 · 2057 阅读 · 0 评论 -
C/C++从入门到进阶必修书籍
C到C++ 学习入门到进阶到专业(以下是学习资料文档)开发语言排序文档名称URL链接难度c入门级1你必须知道的495个C语言问题http://download.csdn.net/download/u013468134/68433432C语言深度剖析http://download.csdn.n原创 2014-02-09 11:29:25 · 6324 阅读 · 18 评论