C/C++基本类型的掌握
文章平均质量分 62
JeaminThk
雄才必有大略 鲁钝必有深修
展开
-
const总结
const的用途: (主要是被const修饰的东西受到强制的保护)1. 可以定义const常量 const int i=4; int j=5; i=j; // l-value specifies const object j=1;2. 可以修饰函数的参数(表明它是一个输入的参数,在函数的内部是不能被改变其值的)3. 可以修饰函数的返回值(使其返回值不为左原创 2013-12-01 12:35:09 · 988 阅读 · 0 评论 -
C/C++指针 引用
呵呵原创 2014-12-26 13:03:03 · 597 阅读 · 0 评论 -
sizeof
通过sizeof()深入看看一些数据类型在编译时的状况原创 2014-12-26 14:15:22 · 437 阅读 · 0 评论 -
namespace命名空间的使用
创建x_baseC.h // x_baseC.h //////////////////////////////////////////////////////////////////////////#include // XA 是基本的库函数重现// XB 是一些具体性的功能实现// namespace XA{ }namespace XB{ // 逆置数组 vo原创 2014-12-29 15:45:51 · 648 阅读 · 0 评论 -
程序中变量分布的区域总结 堆 栈 字符常量区 全局数据区 静态存储区
程序中变量分布的区域总结 堆 栈 字符常量区 全局数据区 静态存储区#include "stdafx.h"#include #include //Var:variable变量 g_:global全局 staticRegion静态区 constantRegion常量区 int g_Var=6;// global initialized; 6/g_Var in constantR原创 2014-12-29 15:31:11 · 682 阅读 · 0 评论 -
如何在类的外部修改类中的私有数据成员
一般的情况是类中的私有数据成员,只能是类的对象自己可以修改,从外部是不能更改的如下例子#includeusing namespace std;class Data{private: int i;public: Data() { i=0; } int* geti() { return &i; } void printi() { cout<<"i= "<原创 2015-02-03 18:02:08 · 6427 阅读 · 2 评论 -
定义返回函数指针(地址)的函数
其实函数指针和普通类型的指针没什么区别,只不过从代码的表现形式上略有差异罢了,回顾一下,下面定义两个在普通不过的”变量“,仔细推敲以下他们的区别。(插几句,现在所做的工作虽谈不上是科研,呵呵,和人家比不了,通俗定义可以叫工科男吧,以前做事貌似从未对做过的学问或者工作仔细推敲,但现在不知道什么时候进化到这个状态)// 定义1:int型变量 int var1;// 定义2:int型指原创 2015-02-08 13:42:56 · 2802 阅读 · 0 评论 -
函数的返回竟然能作为左值
函数返回尽然能作为左值 函数参数里的二级指针 函数参数里的(数据类型引用) 经典不是优雅#include #include #include using namespace std;struct CAssoc{ CAssoc* pNext; void* unused; void* value;};CAssoc *gpGloable=NULL;void*& f原创 2015-01-03 08:21:49 · 2168 阅读 · 1 评论 -
operator* operator-> 操作符的使用
从学习使用C、C++以来,对于操作符的重载的问题一直就是不理解,究其根源编译器是怎么处理这些事情的呢?下面重现以下场////////////////////////////////////////////////////////////////////////////class CNoTrackObject{};class CThreadLocalObject{public:原创 2015-02-26 12:00:36 · 878 阅读 · 0 评论 -
术语
术语 argument(实参) 传递给被调用函数的值。 block(块) 花括号括起来的语句序列。 buffer(缓冲区) 一段用来存放数据的存储区域。IO 设备常存储输入(或输出)到缓冲区, 并独立于程序动作对缓冲区进行读写。输出缓冲区通常必须显式刷新以强 制输原创 2015-07-31 09:25:45 · 629 阅读 · 0 评论 -
cout 格式控制输出
COLORREF m_clrMiniFrame = RGB(0,0,0);COLORREF m_clrFrame = RGB(0,0,0);COLORREF m_clrWindow = RGB(0,0,0);COLORREF m_clrBtn = RGB(0,0,0);COLORREF m_clrBtnText = RGB(0,0,0);cout<<hex;cout原创 2016-02-23 11:32:51 · 551 阅读 · 0 评论 -
ASCII表
// ------------------------------------------------------------------------------------// (nul) 0 0000 0x00 | (sp) 32 0040 0x20 | , 64 0100 0x40 | ` 96 0140 0x60// (soh) 1 0001 0x01 | ! 33原创 2014-07-24 16:29:27 · 418 阅读 · 0 评论 -
汇编1 _ _ C++内嵌汇编
compare原创 2014-09-27 22:28:22 · 2120 阅读 · 0 评论 -
atoi 原来将字符串02002xzm100转换为int以后是2002
将字符里的数字转换成int 遇见0或者字符就结束,look atoi的实现#include int xzm_atoi( char* pstr ){ int ret = 0; int symbolSign = 1; /* * 判断指针是否为空 */ if(pstr == NULL) { OutputDebugString("Pointer is NULL\n");原创 2016-08-30 11:16:08 · 440 阅读 · 0 评论 -
BCG-MFC 库对《支持重新启动管理器》都做了些什么
一般用VS2010以上版本,创建MFC的程序都会有这个选项,如下图所示,如果选择了这几项,那么应用程序都做了哪些工作呢?下面一一道来首先,为了让你自己创建的应用程序下次重新打开的时候能记住上一次的布局等设置,那么只有一种方法,就是把一些布局参数存放起来,但本次设置完了以后,在应用程序关闭前把相应的参数配置存起来,等到下一次运行应用程序是在读这些配置来支配布局。各项参数存起来可以后好多的原创 2017-02-23 10:55:36 · 1132 阅读 · 0 评论 -
Linux在线库函数查询
Linux常用C函数查询Linux原创 2017-05-27 04:18:25 · 3217 阅读 · 3 评论 -
条件编译#define、#undef、#if、#elif、#elif defined、#elif !defined 、#endif用法
条件编译上代码// what is the fucking shit.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #define VERSION_XZM 1#define VERSION_HAERBIN _T("哈尔滨\n")#define VERSION_TIANJIN _T("天津原创 2017-07-05 12:14:41 · 10854 阅读 · 0 评论 -
union与struct的区别
共用体中所有成员公用一块地址空间结构体中所有成员都有单独的一块地址空间,下面的例子是公用函数指针#include #include typedef void (*FUNC )(void);typedef void (*Func01)(int, int); typedef double (*Func02)(double, double); typedef int原创 2014-12-26 00:25:07 · 473 阅读 · 0 评论 -
static
1.在函数体内,一个被声明为静态的变量在这一函数被调用的过程中维持其值不变。2.在模块内(但在函数体外),一个被声明为静态的变量可以被模块内的所有函数访问,但是不能被模块外其他函数访问。3.它是一个本地的全局变量。在模块内,一个被声明为static的函数,只可被模块内的其他函数调用,那就是说,这个函数被限制在它的模块范围内使用。原创 2013-12-02 17:06:52 · 806 阅读 · 0 评论 -
C++ 术语
术语 argument(实参) 传递给被调用函数的值。 block(块) 花括号括起来的语句序列。 buffer(缓冲区) 一段用来存放数据的存储区域。IO 设备常存储输入(或输出)到缓冲区, 并独立于程序动作对缓冲区进行读写。输出缓冲区通常必须显式刷新以强 制输原创 2014-12-07 18:43:57 · 1164 阅读 · 0 评论 -
位运算
位运算概述: 有些位运算可以关作为闭位的手段,屏蔽掉某些位,如奇偶校验位。有些位运算相反,可以用来置位,直接对结果变量的每一位分别处理,移位运算可以对外部设备(如 D/A转换器)的输入和状态信息进行译码,移运算还可以用于整数的快速乘、除运算。下表列出了位运算的运算符和其对应的功能,位运算的操作对象主要是 整形数据、字符型数据下面就具体的针对这些运算符在实际中使用进行举例:原创 2013-12-03 10:39:50 · 787 阅读 · 0 评论 -
指针 函数指针
总结如下:#include #include using namespace std;int Func(int a) { int b=a;cout<<"Func "; return b;}int Func1(int a) { int b=a;cout<<"Func1 "; return b;}int Func2(int a) { int b=a;cout<<"Func原创 2013-12-02 15:43:13 · 534 阅读 · 0 评论 -
void* LPVOID是些什么东东
1.什么是空指针,为何这样称呼它? 一般来说,程序的起始地址是从“代码区”的0地址开始存放的(注:如果插入一个内存分布图,则更能说明问题,此处省略),但实际上现代操作系统并非如此,却保留了从0开始的一块内存。至于这块内存到底有有多大,与具体的操作系统有关。如果程序试图访问这块内存,则系统提示异常。 为什么操作系统不是保留一个字节呢?由于内存管理是按页来进行的,因此无法做到单独保原创 2013-12-02 17:19:21 · 3602 阅读 · 0 评论 -
关于进程句柄 窗口句柄的关系
如何查找到当前窗口所在进程的相关数据,如进程句柄、进程首先通过类名 或 窗体的名字 得到映射窗口的窗口句柄 windows提供的API函数 FindWindow()函数就能完成这个任务HWND FindWondow(lpclassname,lpwindowsname)然后通过得到的窗口句柄得到窗口所在进程的IDGetWindowThreadID(窗口句柄,所在进程的ID)然后原创 2013-12-05 18:16:47 · 3666 阅读 · 2 评论 -
位运算符 | << >> & ^ ~的厉害__10进制 To 2进制
看看函数printb()函数那神奇的地方#include #include using namespace std;void printb(int x,int n);int main(){ int x=1; while(x) { scanf("%d",&x); printb(x,sizeof(int)*8); putchar('\n'); } cout<<原创 2013-12-28 22:59:41 · 907 阅读 · 0 评论 -
递归问题
1.汉诺塔问题:#include #include using namespace std;void move(char x,char y);void hanoi(int n,int one,int two,int three);int main(){ int m=1; while(m) // 注意这里 { cin>>m; if(m!=0) hanoi(m,原创 2013-12-30 12:05:48 · 705 阅读 · 0 评论 -
构造函数及其参数列表初始化问题
关于C++中的类的封装,如何进行封装?怎么样更好的封装?下面仅就构造函数的初始化问题进行细致分析:类的构造函数及参数初始化列表_基本成员类的构造函数及参数初始化列表_基本成员注意事项类的构造函数及参数初始化列表_const成员类的构造函数及参数初始化列表_引用成员类的构造函数及参数初始化列表_指针成员类的构造函数及参数原创 2013-12-25 21:04:20 · 1505 阅读 · 0 评论 -
C/C++指针 数组
Demo.cpp文件#include #include #include #include #include "headFile.h"#include "Object.h"using namespace std;int main(int argc,char *argv[]){#ifdef X1 // int i=7,j=8; printf("i==%d,&i==%原创 2014-01-20 20:59:41 · 572 阅读 · 0 评论 -
C++项目中编译部分C的代码
在C++项目中如果真能编译部分C的代码,那么一定会用到一下语句原创 2014-07-02 15:51:53 · 1886 阅读 · 0 评论 -
C 重置连续地址空间
#include #define CANVAS_BLOCK_HEIGHT 10#define CANVAS_BLOCK_WIDTH 10typedef unsigned short pixel;void drawfunc_clear(pixel *ptr,int pitch,void *object,int x,int y);void main(){ pixel used=5原创 2014-09-23 03:06:20 · 503 阅读 · 0 评论 -
内存链
///////////////////////////////////////////// _AFXPLEX_.H文件#ifndef __AFXPLEX_H__#define __AFXPLEX_H__#include "_afxwin.h"struct CPlex{ CPlex* pNext; // 向每个内层块中添加的额外信息,指向下一个内存块首地址的指针 // 这里是原创 2014-09-24 01:16:15 · 725 阅读 · 0 评论 -
利用管道技术实现将printf重定向到MFC对话框程序的编辑框控件中去
具体例子在xxx的地方 实现细节以后再说原创 2014-11-20 17:08:11 · 1201 阅读 · 0 评论 -
extern 与 #define 使用说明
extern与#define两者的使用从本质上讲没有本质的区别,无非就是为编译器的编译格式所服务的;他们在编译的过程不是同一个阶段,#define是在编译器的预编译时期,而extern是在编译器的编译时期#define没有类型检查的功能 extern有类型检查的功能#define 可以定义许多高级的宏extern可以跨obj进行变量的声明原创 2014-12-01 11:34:19 · 6528 阅读 · 0 评论 -
new
new申请的是堆空间 (那应该是远堆还是近堆呢?)远堆、近堆源于硬件CPU的位数。对于16位CPU来说,一般来说段地址寄存器是16位的,所以2的16次方就是64K。在这个大小内,一般申请的内存都是在程序的同一段内存内的,访问这块内存只用段寄存器就够了。如果很大的话,就要用段地址+偏移地址。就是远堆了。对于现在的CPU几乎都不考虑这个了,大多都是32位的寄存器或者是64位的了,所以表面上原创 2014-12-26 02:19:25 · 577 阅读 · 0 评论 -
指针的指针的实际使用例子
头文件1.h#pragma once#include class CSimpleList{public: CSimpleList(int nNextOffset = 0); void Construct(int nNextOffset); // 提供给用户的接口函数(Operations),用于添加、删除和遍历节点 BOOL IsEmpty() const; void A原创 2015-01-27 18:40:55 · 885 阅读 · 0 评论 -
printf输出重定向到文件中
win_main.cpp#include "precompileHeader.h "int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow){ char strTempPath[MAX_PATH]; GetSp原创 2017-10-06 15:17:25 · 5723 阅读 · 0 评论