c++编程
文章平均质量分 75
支持英文
这个作者很懒,什么都没留下…
展开
-
辨析c++的常量指针、指针常量,引用
本篇博文主要记录近日学习的常量指针、指针常量和引用原创 2018-01-01 20:50:33 · 298 阅读 · 0 评论 -
理解c++函数指针
一、函数指针(通过参数与返回值来确定一个函数指针) 1、直接声明 int (*pf)(string& a,string & b); //定义pf指向参数为a,b,返回值为int类型的函数 int * pf(string&a,string &b); //括号必不可少,此时声明了一个pf函数,返回值为int *型原创 2018-02-03 19:44:30 · 256 阅读 · 0 评论 -
理解数组和引用作为参数和返回值传递
根本:数组不能拷贝,所以函数、返回值传递数组变量只能通过数组的指针或者是引用 一、函数返回值问题:指针(注:函数的返回值不能是数组,只能是数组的指针或是引用)1、函数返回指针(包含动态数组)声明:int * retArray(int i);声明:int * retArray(int i)[10];函数返回数组,内部存储为基本数据类型的指针注:此种定义是错误的,函数返回值为数组是被禁止的,只...原创 2018-02-03 20:01:53 · 5527 阅读 · 0 评论 -
关于结构体内存对齐方式的总结(#pragma pack()和alignas())
最近闲来无事,翻阅msdn,在预编译指令中,翻阅到#pragma pack这个预处理指令,这个预处理指令为结构体内存对齐指令,偶然发现还有另外的内存对齐指令aligns(C++11),__declspec(align(#))(Microsoft专用),遂去探究两者之间的不同点。1、#pragma pack这个指令为预处理指令,所谓与处理指令执行在程序的预处理阶段,该指令对应着编译选项/Zp,可以在...原创 2018-03-07 14:39:46 · 2976 阅读 · 0 评论 -
理解C++复杂数组
带括号的和不带括号的变量阅读顺序: 带括号:由括号内向外理解 不带括号:由右向左理解一、静态数组 1、指针数组:数组内存储的是指针定义:定义即分配空间,基本数据变量和指针皆准int * point[constant]; //constant必须在编译阶段指定初始化:需要给每个元素赋地址值for(int i=0;i<constant;i++) { ...原创 2018-02-03 19:33:15 · 455 阅读 · 0 评论 -
预处理运算符
预处理器运算符作用在预处理阶段,在#define中处理字符时使用。1、#:字符串化运算符对于需要转义的字符如“或者\,宏处理运算符会自动插入到字符前对于用空格隔开的字符串,宏处理过程会自动拼接各个字符#define fb(x) #x "bc"fb(a); 结果为字符串abcfb('a');结果为字符串'a'bc2、#@,字符化运算符 宏处理会将该运算符实参处理为单个字符#define fc(x) ...原创 2018-03-16 15:42:53 · 350 阅读 · 0 评论 -
c/c++可变参数函数
可变参数函数参数数量没有固定的数量,通常在传递参数的时候设置第一个参数标识传递参数数量;或者是设置最后一个参数为结束位来标识参数传递结束。对于可变参数函数,头文件stdarg.h宏定义了几种运算符帮助程序员快速获取可变函数的参数。1.对于可变参数函数可以使用的几种宏定义可变参数函数定义: void test(int a,...);1、va_list 符号别名定义:typedef cha...原创 2018-03-22 21:32:41 · 296 阅读 · 0 评论