涨知识 --- VI
1.空类所占空间大小
空类所占空间为1,单一继承的空类空间也为1,多继承的空类空间还是1.但是虚继承涉及虚表(虚指针),所以sizeof(C)的大小为4。
2.内联函数与宏定义
Ans:内联函数和普通函数相比可以加快程序运行速度,因为不需要中断调用,在编译的时候内联函数可以直接镶嵌到目标代码中。而宏只是一个简单的替换。
所谓的嵌入代码,是指在调用函数的地方把所需要的函数代码直接写到那里去。对于短小的代码来说,inline可以带来一定的效率提升,而且和C时代的宏函数相比,inline更加安全可靠。可是是以增加空间为代价的。
比如,在C中,可以定义无返回值类型的函数。
#include <stdio.h> inline func(int i)
{
return i * i;
}
int main()
{
printf("%d\n", func());
return ;
}
3.交换问题:
//交换无效:没有修改指针中的内容。
void swap3(int *p, int *q){
int *tmp;
tmp = p;
p = q;
q = tmp;
}
//交换成功!a & b所在地址处的内容发生交换
void swap4(int *p, int *q){
int tmp;
tmp = *p;
*p = *q;
*q = tmp;
}
//交换成功!同上
void swap5(int &p, int &q){
int tmp;
tmp = p;
p = q;
q = tmp;
}
int main()
{
int iv;
int iv2 = ;
int iv3 = ;
//int &reiv;
int &reiv2 = iv;
int &reiv3 = iv;
int *pi;
//*pi = 5;整数指针pi没有指向实际的地址。在这种情况下就给他赋值是错误的,因为赋的值知不知道该放到哪里。
pi = &iv3;
//const double di; 错误!常量赋值必须进行初始化
const double maxWage = 10.0;
const double minWage = 0.5;
const double *pc = &maxWage;
int a=,b = ;
swap3(&a,&b);
cout<<a<<" , "<<b<<endl;
swap4(&a,&b);
cout<<a<<" , "<<b<<endl;
swap5(a,b);
cout<<a<<" , "<<b<<endl;
return ;
}
涨知识 --- VI的更多相关文章
- 涨知识-VI 基于TCP/UDP的应用层协议
基于TCP/UDP的应用层协议: 基于TCP: Telnet(Teletype over the Network, 网络电传),通过一个终端(terminal)登陆到网络 FTP(File Trans ...
- 涨知识Style
1.用Access作为后台数据库支撑,书写一个C#写入记录的案例 示例1: using System.Data.OleDb; string sql = "insert into 表 (列1, ...
- Camel——涨知识了,骆驼命名法
骆驼式命名法(Camel-Case)又称驼峰命名法,是电脑程式编写时的一套命名规则(惯例).正如它的名称CamelCase所表示的那样,是指混合使用大小写字母来构成变量和函数的名字.程序员们为了自己的 ...
- 涨知识:equals 和 == 你真的了解吗?
基本概念 ==是运算符,比较的是两个变量是否相等: equals()是Object方法,用于比较两个对象是否相等 看一下源码: public boolean equals(Object anObjec ...
- 涨知识,涨知识 :ThinkPHP框架下Where条件查询Mysql数据库某字段是否为空
代码虐我千百遍,我对代码如初恋~ 问题: 查询某字段app_date数据是否为NULL,正常我们实现的办法是: $map['app_data'] = array('eq','null'); $data ...
- main方法原来只要放在public static类中就能跑,涨知识了
接口中可以装在嵌套类对象. public interface ClassInterface { void howdy(); class Test implements ClassInterface { ...
- 你可能不知道的 10 条 SQL 技巧,涨知识了!
转自:http://mp.weixin.qq.com/s?__biz=MjM5NzM0MjcyMQ==&mid=2650076293&idx=1&sn=38f6acc759df ...
- 涨知识---V
1.内存对齐 在解释内存对齐的作用前,先来看下内存对齐的规则: 1). 对于结构的各个成员,第一个成员位于偏移为0的位置,以后每个数据成员的偏移量必须是min(#pragma pack()指定的数, ...
- 涨知识---IV
1.如何减少换页错误? A.进程倾向于占用CPU. B.访问局部性(locality of reference)满足进程要求. C.进程倾向于占用I/O. D.使用基于最短剩余时间(shortest ...
随机推荐
- 3.2.1.1 POSIX方括号表达式
为配合非英语的环境,POSIX 标准强化其字符集范围的能力(例如,[a-z]),以匹配非英文字母字符. POSIX 也在一般术语上作了些变动,我们早先看到的范围表达式在 UNIX ...
- java8 新特性 lambda过滤
1. 定义实体类 package com.atguigu.java8; public class Employee { private int id; private String name; pri ...
- 添物零基础到大型全栈架构师 不花钱学计算机及编程(预备篇)— C语言编程基础
C语言介绍 C语言基本是每个编程人员必学的一面语言,很好掌握,是理解编程的关键.很多编程语言基于其编写或者基于此语言的衍生品编写. C语言是人机交互的一个基础语言之一,虽然是之一,单一般其实就是唯一 ...
- 洛谷 P3203 BZOJ 2002 [Hnoi2010]Bounce 弹飞绵羊
题目描述 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏.游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系 ...
- hdu 3062 2-sat
#include<stdio.h> #include<string.h> #define N 2100 struct node { int u,v,next; }bian[N* ...
- 网线切割&切绳子
题目描述 Wonderland居民决定举行一届地区性程序设计大赛.仲裁委员会志愿负责这次赛事并且保证会组织一次有史以来最公正的比赛.为此,所有参赛者的电脑和网络中心会以星状网络连接,也就是说,对每个参 ...
- HDU A/B 扩展欧几里得
Problem Description 要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1). Input 数据的 ...
- Mybatis错误——Could not find parameter map java.util.Map
错误信息 org.apache.ibatis.builder.IncompleteElementException: Could not find parameter map java.util.Ma ...
- Ubuntu 16.04下Markdown编辑器Haroopad
1.下载deb包 地址:https://bitbucket.org/rhiokim/haroopad-download/downloads/haroopad-v0.13.2-x64.deb 这里是历史 ...
- Spark之安装和使用
Scala安装 Spark使用Scala开发,安装的Scala版本必须和Spark使用的版本一致,否则使用Scala编写的Spark任务会有兼容性问题 可以到Spark官网查看确定Scala版本,或者 ...