c++基础
文章平均质量分 54
潇雨码农
这个作者很懒,什么都没留下…
展开
-
c++预编译头文件
编译器在编译你的程序的时候,所做的第一件事,也就是展开所有的 #include 语句和 #define 语句,及复制加载在该位置。头文件的出现,固然给书写程序带来了很大方便。可是到了 Windows 时代后,慢慢就呈现出一些问题了。几乎所有的 Windows 程序都必须包含 windows.h,而那个文件却硕大无比,将它展开后往所有文件中一粘贴,编译的时候立刻慢得像只蜗牛。 到了 MFC转载 2017-04-08 14:43:54 · 629 阅读 · 0 评论 -
enum
枚举子的类型和取值 默认下,第一个枚举子被赋值0,接下来的枚举子取值是前面一个枚举子的取值+1,例如: enum weather {sunny, cloudy, rainy, windy};其中 sunny == 0, cloudy == 1, rainy == 2, windy == 3;转载 2017-04-13 20:42:25 · 366 阅读 · 0 评论 -
c++类
1 类的构造和析构函数 拷贝和赋值函数 以及各种用到的何种函数2 访问public protect private 继承 权限3 成员变量为常量 ,引用,指针,静态, 成员函数常量 静态 使用注意事项转载 2017-04-28 20:11:47 · 265 阅读 · 0 评论 -
c++函数指针和返回值为指针的函数
1 指针的指针,数组指针 ,指针数组2 函数指针 指针函数 3 const T Tconst T f ()const const T f()转载 2017-04-13 21:34:42 · 5944 阅读 · 0 评论 -
c++struct sizeof大小对齐方式
struct union enum typedef使用和注意事项转载 2017-04-13 19:48:32 · 550 阅读 · 0 评论 -
指针的指针 数组指针 指针数组
指针数组 和 数组指针 指针的指针 T *P[n] T(*P)[n] 指针数组T* a[N]: 指针数组:数组,数组内容为指针。类型名 *数组标识符[数组长度]。Char *name[5]//表示指针数组,有n个指字符数据的指针元素组成指针的指针Char **pP=name;可以等于指针数组数组指针转载 2017-04-13 21:44:15 · 356 阅读 · 0 评论 -
sizeof在编译时是替代
首先要明确sizeof不是函数,也不是一元运算符,他是个类似宏定义的特殊关键字,sizeof();括号内在编译过程中是不被编译的,而是被替代类型。 如int a=8;sizeof(a);在编译过程中,它不管a的值是什么,只是被替换成类型sizeof(int);结果为4. 如果sizeof(a=6);呢,也是一样的转换成a的类型,但是要注意 因为a=6是不被编译的转载 2017-04-22 11:13:11 · 2211 阅读 · 0 评论 -
unsigned 和signed
下面两个printf的输出结果是什么?为什么会有这样的结果?[cpp] view plain copyint main(void) { char a = 255; printf("%d\n",sizeof(++a)); printf("%d\n",a); return 0; }原创 2017-04-22 11:46:24 · 379 阅读 · 0 评论 -
c++基本数据结构和基本运算
char shortintlonglong longfloatdoublebool占用的字节,范围,注意事项,自动转换。转载 2017-04-09 16:59:00 · 357 阅读 · 0 评论 -
字符串之间以及与int float double转换
1 CString 与string char*转换2 string 与int 之间的相互转换3 int float 与字符数组char a[]之间的相互转换1 CString 与string char*转换 以及LPCTSTR LPTSTRCString 是MFC中处理字符串的string是c++的string(a 表示)原创 2017-04-22 14:28:42 · 1632 阅读 · 0 评论 -
union 以及sizeof
在“联合”中,各成员共享一段内存空间, 一个联合变量的长度等于各成员中最长的长度。应该说明的是, 这里所谓的共享不是指把多个成员同时装入一个联合变量内, 而是指该联合变量可被赋予任一成员值,但每次只能赋一种值, 赋入新值则冲去旧值。#include void main(){union number{ /*定义一个联合*/int i;struct{ /*在联合中定转载 2017-04-13 20:31:05 · 445 阅读 · 0 评论 -
c++内存分配(堆栈 new malloc)和内存常见错误
1 常量存储区静态存储区2 堆3 栈4 new delete5 c中malloc free6 区别转载 2017-04-12 22:06:02 · 5387 阅读 · 2 评论 -
const 初始化问题
const 对象一旦创建后其值就不能再改变,所以const对象必须初始化.const int *p中,const对象是*p(即*p的值是只读),而对于此句“const对象必须初始化”,一般用法中我们是要给指针p初始化,而不是给*p初始化。所以在此可以不初始化。即使在声明是进行初始化(const int* p = 0x123456),也是在对指针p初始化,等价于如下一般用法:对此的用法一般如转载 2017-04-23 10:58:52 · 9191 阅读 · 0 评论 -
c++函数和变量
1 c++函数定义 缺省参数2 函数的形参和实参的拷贝3 各种变量的作用域和生存期:全局 静态局部/全局 局部变量 4 各种变量静态 常量 引用static T sconst T c#define T& y转载 2017-04-12 20:16:13 · 557 阅读 · 0 评论 -
c++字符串数组和string
1 字符串数组定义 \02 字符串数组常见函数及自己的实现3 string 的使用 大小 c_str()成员函数转载 2017-04-13 14:08:20 · 3746 阅读 · 0 评论 -
c++运行过程编译 链接
1 预编译2 头文件包含哪些内容3 编译4 连接5 静态链接库和动态链接库的区别转载 2017-04-12 20:41:06 · 225 阅读 · 0 评论 -
#ifndef与#pragme once区别防止头文件重复包含
为了避免同一个文件被include多次,C/C++中有两种方式,一种是#ifndef方式,一种是#pragma once方式。在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。 方式一: #ifndef __SOMEFILE_H__ #define __SOMEFILE_H__ ... ... // 声明、定义语句转载 2017-04-08 13:51:54 · 1162 阅读 · 0 评论 -
类的初始化列表
构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。例如: class CExample {public: int a; float b; //构造函数初始化列表 CExample(): a(0),b(8.8) {} //构造函数内部赋值 CExample()转载 2017-04-09 11:19:57 · 786 阅读 · 0 评论 -
c++指针概述
1 指针2 运算和形参 3 指针初始化和常见问题4 浅拷贝和深拷贝 包括类中指针转载 2017-04-12 21:26:58 · 216 阅读 · 0 评论 -
c++数组
1 数组定义2 数组做形参和返回值3 不能复制和拷贝4 动态数组VECTOR转载 2017-04-12 21:07:32 · 321 阅读 · 0 评论 -
内联函数 常量和宏的区别
inline函数函数调用需要时间和空间开销,调用函数实际上将程序执行流程转移到被调函数中,被调函数的代码执行完后,再返回到调用的地方。这种调用操作要求调用前保护好现场并记忆执行的地址,返回后恢复现场,并按原来保存的地址继续执行。对于较长的函数这种开销可以忽略不计,但对于一些函数体代码很短,又被频繁调用的函数,就不能忽视这种开销。引入内联函数正是为了解决这个问题,提高程序的运行效率。转载 2017-04-12 20:51:38 · 395 阅读 · 0 评论