
C/C++
wangxixi522
这个作者很懒,什么都没留下…
展开
-
联合体UNION的内存占用计算
内存区的数据变成了如下图所示,可以看到,继续赋值的话从变量地址头部开始覆盖掉了之前的数据。有如上这么一段程序片,int占用4个字节,long long占用8个字节,使用sizeof计算如上DATA的空间大小时,在分割线以前,内存中的数据是这样的,而在执行了如下代码以后,...原创 2022-08-06 16:13:14 · 1828 阅读 · 1 评论 -
CODING INTERVIEW QUESTIONS记录-第一章 编程基础
第一章 编程基础1.1 存储类别auto用法:auto int number特点:这种类型的变量会在函数被调用时自动创建,函数退出后自动销毁。extern用法:extern int number特点:用extern声明变量时,系统并不会为其分配内存空间。将变量申明为extern时,编译器会搜寻其是否被定义或初始化,如果没有则显示错误消息。register用法:register int count特点:用register修饰的变量存放在寄存器中用于被频繁快速原创 2020-07-08 23:51:15 · 332 阅读 · 0 评论 -
青蛙跳台阶题目及其延伸
title: 青蛙跳台阶题目及其延伸 date: 2016-05-30 10:51:35 categories: C++面试 tags: - C++ - 算法 - 数据结构 - 腾讯青蛙跳台阶题目初级腾讯面试题目:有一个50阶的楼梯,每次可以上一阶或者两阶,总共的方法有多少种。 算法应用:递归#include<stdio.转载 2017-03-26 22:41:43 · 598 阅读 · 0 评论 -
七种常见经典排序算法总结(C++实现)
title: 七种常见经典排序算法总结(C++实现) date: 2016-05-27 16:03:41 categories: 算法 tags: - C++ - 算法排序算法是非常常见也非常基础的算法,以至于大部分情况下它们都被集成到了语言的辅助库中。排序算法虽然已经可以很方便的使用,但是理解排序算法可以帮助我们找到解题的方向。1. 冒泡排序 (Bu转载 2017-03-26 22:33:19 · 747 阅读 · 0 评论 -
刷题遇上的知识点
title: 刷题遇上的知识点 date: 2016-05-27 13:36:36 categories: C++ tags: - C++1 运算符号|(按位取或运算) 和&(按位取与运算),逗号运算符例题分析:如果x=2014,下面函数的返回值是()<?cppint fun(unsigned int x){ int n=0; while((原创 2017-03-26 22:32:25 · 441 阅读 · 0 评论 -
Effective C++ 读书笔记
title: Effective C++ 读书笔记 date: 2016-05-27 16:13:10 categories: C++ tags: - C++1 尽可能使用const如果const出现在星号左边,比如 `const int *p`,则说明被指向的对象是常量,即p指向的数据是常量,不允许赋值等运算;但是如果const出现在星号右边,比如`int *co原创 2017-03-26 22:31:34 · 297 阅读 · 0 评论 -
身份证号码验证算法
title: 身份证号码验证算法 date: 2016-06-26 16:36:41 categories: 算法 tags: - 算法经常会见到一些鉴别身份证号码是否真实的辨别,根据网上的身份证号码验证算法,做以总结。一.18位身份证号码的结构公民身份证号码是特征组合码,由十七位数字和一位校验码组成。排列从左往右依次为:六位数字地址码, 八位数字出生日期码, 三位转载 2017-03-26 22:30:07 · 1140 阅读 · 0 评论 -
中缀表达式与后缀表达式之间的转换
title: 中缀表达式与后缀表达式之间的转换 date: 2016-05-30 10:40:47 categories: 数据结构 tags: - 数据结构 - 中缀表达式中缀表达式转换成后缀表达式————————————————————————————1.转换规则从左到右遍历中缀表达式的每个数字和符号: 若是数字就输出,即成为后缀表达式的一部原创 2017-03-26 22:28:44 · 545 阅读 · 0 评论 -
C中常见的类型转换
title: C中常见的类型转换 date: 2016-06-13 11:35:17 categories: C++ tags: - C - C++ - 类型转换常见的类型转换小结:signed char转换成int类型时,转换后的int类型前3个字节填充对应char类型最高位的比特数。而unsigned char类型转换成int类型时,无论char类型的最高位是原创 2017-04-01 11:33:24 · 406 阅读 · 0 评论 -
pragma pack(n)与内存对其问题
title: pragma pack(n)与内存对其问题 date: 2016-06-08 15:32:11 categories: C++ tags: - C - C++ - 内存对齐 - pragma pack作用:屏蔽掉编译器为变量设定的默认的对其方式,设定自己的对其方式而#pragma pack(n)表示设定变量以n字节对其。如果n大于等于该变原创 2017-04-01 11:32:41 · 334 阅读 · 0 评论 -
类中构造函数的顺序
title: 类中构造函数的顺序 date: 2016-06-08 15:29:08 categories: C++ tags: - C - C++ - 构造函数在一个class及其继承类中,不但有父类,还有类的成员,还有子类。那么父类的构造函数,成员变量的构造函数以及子类的构造函数的顺序是怎么样的,有以下例题:# include <iostream>using原创 2017-04-01 11:31:32 · 430 阅读 · 0 评论 -
ESSENTIAL C++ 读书笔记
title: ESSENTIAL C++ 读书笔记 date: 2016-05-27 12:46:36 categories: C++ tags: - C++1.条件语句if条件语句,如果括号内的运算式结果为true,那么紧接着if之后的那一条语句会被执行。 当if后接多条语句时,则必须在if语句之后以大括号{}的形式将这些执行语句括起来,成为一个语句块。if(s原创 2017-03-26 22:35:17 · 917 阅读 · 0 评论 -
类的早期绑定&迟绑定
— title: 类的早期绑定&迟绑定 date: 2016-05-30 10:38:20 categories: C++ tags: - C++ - 类 - 动态绑定对于以下的 例子:#include<iostream>using namespace std;class animal{ public: void sleep(){原创 2017-03-26 22:39:37 · 358 阅读 · 0 评论 -
Essential C++ 课后习题
title: Essential C++ 课后习题 date: 2016-05-30 10:23:35 categories: C++ tags: - C++ - Essential C++Exercise 1.6/**************************************************Name:Wang**Data:原创 2017-03-26 22:40:39 · 2050 阅读 · 0 评论 -
EC笔记
尽可能使用const如果const出现在星号左边,比如 const int *p,则说明被指向的对象是常量,即p指向的数据是常量,不允许赋值等运算;但是如果const出现在星号右边,比如int *const p,说明指针是是常量。如果出现在两边,说明两者都是常量。注:如果被指物是常量,有些程序员会将const写在类型前面,而有些人会将其写在类型后边,星号前边。均可。STL迭代器的作用:类似于T *指原创 2016-03-12 16:21:31 · 402 阅读 · 0 评论 -
C语言点滴
title: C语言点滴 date: 2016-05-30 09:53:48 categories: C++ tags: - C - 编程语言拜读赵岩老师的《C语言点滴》,目的是为了查漏补缺,在重新温习C语言基础的基础上对一些之前并未关注或者遗忘的细节给予重新定位和重视。——ycwang.2015-12-162.5编程风格 不应该写一个很长的函数,一原创 2017-03-26 22:36:10 · 427 阅读 · 0 评论 -
对struct 嵌套 struct 求 sizeof 存在的一些误解
对struct 嵌套 struct 求 sizeof 存在的一些误解记录.分享记录.分享有以下两个结构体,example1和example2,定义如下:typedef struct { short a; long b;}example1;typedef struct { char c; example1 struct1; short d; }example...原创 2018-09-22 11:49:24 · 1264 阅读 · 0 评论 -
强制类型转换
title: 强制类型转换 date: 2016-06-02 11:03:29 categories: C++ tags: - C++ - 类型转换首先看一道例子:#include <stdio.h>#include <stdlib.h>int main(){ int a =6336; char *b = (char *)&a;原创 2017-03-26 22:46:23 · 363 阅读 · 0 评论 -
复杂指针解析
title: 复杂指针解析 date: 2016-05-31 23:01:57 categories: C++ tags: - C++ - 指针右左法则—-复杂指针解析<转>http://blog.youkuaiyun.com/code_crash/article/details/4854965首先看看如下一个声明:int* ( *( *fun )( int* )转载 2017-03-26 22:45:46 · 346 阅读 · 0 评论 -
C++中的转义序列
title: C++中的转义序列 date: 2016-05-31 22:59:41 categories: C++ tags: - C++ - 转义字符C++中的转义序列两类字符不能直接使用:一类是不可打印字符,例如退格等。因为没有可视的图符。另一类是有特殊含义的字符(单引号,双引号,问号,反斜线)等。这些情况下会用到转义序列,转移序列均以反斜原创 2017-03-26 22:44:10 · 1437 阅读 · 1 评论 -
计算代码运行时间
title: 计算代码运行时间 date: 2016-05-31 17:19:40 categories: C++ tags: - C++ - C计算代码的运行时间包含头文件#include<time.h>在程序执行的起始点,插入代码clock_t start,finish;start=clock();在程序执行的终点,插入代码:finish=clo原创 2017-03-26 22:43:35 · 401 阅读 · 0 评论 -
static详解
title: static详解 date: 2016-05-30 15:40:42 categories: C++ tags: - C++ - Cstatic详解对于static关键字的作用,一般的回答为如下形式1.限制变量的作用域2.设置变量的存储域static的特点是:static局部变量的“记忆性”与生存期的“全局性”记忆性是指在两次函数调原创 2017-03-26 22:42:51 · 361 阅读 · 0 评论 -
为什么虚函数(virtual)不能是static函数
title: 为什么虚函数(virtual)不能是static函数 date: 2016-06-08 15:22:30 categories: C++ tags: - C++ - C简而言之,成员函数实例相关,静态函数类相关。虚函数,是一种特殊的成员函数,用来实现运行时多态。静态成员函数,可以不通过对象来调用,没有隐藏的this指针。virtual函数一定要通过对象来调原创 2017-04-01 11:30:16 · 10135 阅读 · 1 评论 -
逗号运算符和逗号表达式
title: 逗号运算符和逗号表达式 date: 2016-06-07 10:36:15 categories: C++ tags: - C - C++ - C++小结逗号运算符和逗号表达式逗号运算符逗号运算符是以逗号为分隔符的列表中最后一个表达式的值。 本质上讲,逗号的作用是导致一系列运算都被顺序执行。最右边的那个表达式的值将作为整个逗号表达式的值,其他的表达原创 2017-04-01 11:29:29 · 21630 阅读 · 7 评论 -
typedef用法小结
title: typedef用法小结 date: 2016-06-07 10:33:27 categories: C++ tags: - C++ - C - C++小结typedef使用小结stackoverflow上看到的一个问题。typedef void(*FunctionFunc)();Three Question:1.Why is typedef use原创 2017-04-01 11:28:51 · 431 阅读 · 0 评论 -
C/C++中的函数参数传递机制(zz)
一、 函数参数传递机制的基本理论 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题。基本的参数传递机制有两种:值传递和引用传递。以下讨论称调用其他函数的函数为主调函数,被调用的函数为被调函数。 值传递(passl-by-value)过程中,被调函数的形式参数作为被调函数的局部变量处理,即在堆栈中开辟了内存空间以存放由主调函数放进来的转载 2015-11-29 17:28:12 · 515 阅读 · 0 评论 -
#include中用双引号和用尖括号括起来头文件的区别
双引号表示先在程序源文件所在目录查找,如果未找到则去系统默认目录查找,通常用于包含程序作者编写的头文件;尖括号表示只在系统默认目录或者括号内的路径查找,通常用于包含系统中自带的头文件;尖括号:在包含文件目录中去查找(包含目录是由用户在设置环境时设置的),而不在源文件目录去查找;双引号:首先在当前的源文件目录中查找,若未找到才到包含目录中去查找。//双引号头文件的搜索转载 2015-11-29 22:24:53 · 4168 阅读 · 0 评论 -
CPP 6th——类(8)
纯虚函数定义格式是: virtual 函数类型 函数名(参量列表)=0; 例如:virtual float area( ) const =0;//纯虚函数 注意: ①纯虚函数没有函数体;②最后面的“=0”并不表示函数返回值为0,它只起形式上的作用,告诉编译系统“这是纯虚函数”; ③这是一个声明语句,最后应有分号。作用: 纯虚函数的作用是在基类中为其派生类保留一个函数的名字,以便派生类根据原创 2015-12-13 16:50:31 · 322 阅读 · 0 评论 -
CPP 6th——类(7)
继承时的名字遮蔽 如果派生类中的成员变量和基类中的成员变量重名,那么就会遮蔽从基类继承过来的成员变量。所谓遮蔽,就是使用新增的成员变量,而不使用继承来的。 成员函数也一样,如果函数名和参数签名都相同,就会造成遮蔽。如果仅仅是函数名相同,而参数签名不同,那么会构成重载。派生类的构造函数 基类的构造函数不能被继承,在声明派生类时,对继承过来的成员变量的初始化工作也要由派生类的构造函数来完原创 2015-12-12 12:01:35 · 359 阅读 · 0 评论 -
CPP 6th——运算符重载+函数重载+函数模板
运算符重载的概念及语法 所谓重载,就是赋予新的含义。函数重载(Function Overloading)可以让一个函数名有多种功能,在不同情况下进行不同的操作。运算符重载(Operator Overloading)也是一个道理,同一个运算符可以有不同的功能。函数重载 C++允许多个函数拥有相同的名字,只要它们的参数列表不同就可以。这就是函数的重载(Function Overloading)转载 2015-12-13 21:37:16 · 770 阅读 · 0 评论 -
CPP 6th 读书笔记——类(1)
#共用体:union能够存储不同的数据类型,但同时只能存储其中的一种类型。与结构体的区别:结构体:同时存储 char,int和double类型。共用体:只能存储char、int或double类型。共用体的长度:其中的最大成员的长度。用途之一:当数据项使用两种或者两种以上的数据类型但不同时使用其时,使用共用体可以节省空间。注:当内存以GB或者是TB为单位时,节约内存貌似没原创 2015-11-29 22:52:39 · 353 阅读 · 0 评论 -
CPP 6th——类(6)
继承 继承是类与类之间的关系,是一个很简单很直观的概念,与现实世界中的继承(例如儿子继承父亲财产)类似。 继承(Inheritance)可以理解为一个类从另一个类获取成员变量和成员函数的过程。例如类B继承于类A,那么B就拥有A的成员变量和成员函数。被继承的类称为父类或基类,继承的类称为子类或派生类。 派生类除了拥有基类的成员,还可以定义自己的新成员,以增强类的功能。以下是原创 2015-12-11 11:02:41 · 495 阅读 · 0 评论 -
牛客网读书笔记
#奇虎2016内推C++试题1.在64位操作系统上,如下数据结构占用的存储空间大小为多少字节123456structA{ unsigned inta; charb[2]; doublec; shortd;原创 2015-12-09 16:30:54 · 279 阅读 · 0 评论 -
成哥C笔记-动态分配内存
#include#includevoid main(){ int x=0,i; scanf_s("%d",&x); int *p = (int *) malloc(x*sizeof(int)); for (i=0;i<x;i++) { p[i]=i+1; printf("\n%d,%x",p[i],&p[i]);原创 2015-11-06 09:35:23 · 395 阅读 · 0 评论 -
类的早期绑定&迟绑定
对于以下的例子:#include<iostream>using namespace std;class animal{ public: void sleep(){ cout<<"animal sleep"<<endl; } void breathe(){ cout<<"animal breathe"<<endl;翻译 2016-01-19 11:09:12 · 509 阅读 · 0 评论 -
读书笔记(二)
第8章 库函数8.1 数学相关使用数学函数的时候,大多数需要包含头文件<math.h>,但是也有特例,例如处理整型数的函数abs函数被包含在<stdlib.h>头文件中三角函数和反三角函数,都以弧度为参数,而不是以角度为参数。更加详细的数学函数可以参考C mathematical functions。-维基百科<math.h>8.2 字符串相关strcpy、strcat函数会改变传入的字符转载 2015-12-22 15:04:13 · 306 阅读 · 0 评论 -
一锅粥
一.窗口弹出包含函数#include函数库1.弹出窗口调用函数MessageBox(),其中四个参数:第一个设置为0,窗口编号。第二个为弹出窗口内容,第三个参数为窗口标题,第三第二个需要用双引号,第四个设置为0,为窗口类型。2. ShellExecute打开程序,文件或者网址等操作ShellExecute(0,”open”,”www.baidu.com”,0,0,1)函数.op原创 2015-12-08 21:41:47 · 493 阅读 · 0 评论 -
做题时碰到的一些技巧方法
目录目录1.运算符号|(按位取或运算) 和&(按位取与运算),逗号晕算符逗号运算符2.sizeof求结构体的长度问题3.零碎的知识点宏动态分配的内存free释放reinterpret_cast ————C++中的强制类型转换符4. strcat and strcpy5.复杂度计算1.运算符号|(按位取或运算) 和&(按位取与运算)...原创 2016-04-04 20:13:42 · 630 阅读 · 0 评论 -
优快云博客精选
1.关于类的静态类型、动态类型和静态绑定,动态绑定[常高伟的专栏]_深入理解C++的动态绑定和静态绑定转载 2016-04-12 16:59:41 · 468 阅读 · 0 评论 -
Essential C++ 课后习题
Exercise 1.6/**************************************************Name:Wang**Data:2016-3-24 21:06:34**Readme:从标准设备读取一串整数,并将读入的整数依次放到array及vector 然后遍历这两种容器,求取数值的总和。 将总和及平均值输出至标准输出设备。ve原创 2016-03-24 22:23:05 · 1901 阅读 · 0 评论