1.下面程序在x64下结果

struct  st
{
int a;
long long b;
double c;
}; int main() {
st s;
cout << &s.a << endl;
cout << &s.b << endl;
cout << &s.c << endl;
cout << sizeof(s) << endl;
int* p = nullptr;
cout << sizeof(p) << endl; system("pause");
return 0;
}

结果:

0000003DC3CAF658
0000003DC3CAF660
0000003DC3CAF668
24
8

知识点1.

结构体每个成员相对结构体首地址的偏移都是每个成员本身大小的整数倍。

知识点2.

x64下,指针为8位。

2.知识点

const int* p; p的内容可以变,*p不可以变。

int * const p; *p可以变,p不可以变。

3.下面程序的结果

int i=0,a=1,b=2,c=3;
i=++a||++b||++c;
printf("%d %d %d %d",i,a,b,c);

结果:1 2 2 3

知识点:

||前++a 返回true,所以不会再计算后面的表达式

4.一元运算符重载

class A
{
public: A& operator++()
{
return *this;
} A& operator++(int)
{
return *this;
}
}; int main() { A a;
a++; //++(int)
++a; //++
system("pause");
return 0;
}

5.下面程序

class A
{
public:
void fun() const
{
delete this;
} ~A()
{
delete this;
}
}; void fun()
{
static int i = 10;
i++;
cout << i << endl;
} int main() {
A *a = new A();
a->fun();
delete a; system("pause");
return 0;
}

析构函数中会导致无限循环,堆栈溢出。fun按原理说不会出错,但vs下会出错。

6.多态分为静态和动态多态,静态多态也就是函数重载,包括函数重载和运算符重载

7.C++中的常量折叠:指const变量(即常量)值 放在编译器的符号表中 ,计算时编译器直接从表中取值,省去了访问内存的时间,从而达到了优化。

const int i = 0;
int *j = (int *)&i;
*j = 1;
printf("%d,%d", i, *j);

C++结果:0,1

8.数组指针和二级指针的区别

  • 二级指针是指向指针的指针, 也就是说二级指针必须指向一个一级指针, 而这个一级指针存放的是一个内存地址。
  • 一维数组可以看成是一级指针,但是二维数组却不能看成是二级指针。

就以a[2][3]举例:

a[2][3]其实就是两个维度为3的一维数组合并起来的二维数组, 也可以看成是一个一级数组指针 所以并不能用二级指针直接操作二维数组。 应该使用 数组指针int (*p)[3] = a;

最新文章

  1. 动态Web API层
  2. MFC---static控件加载图片
  3. MySQL关键字
  4. Linux多线程实例练习 - pthread_exit() 与 pthread_join()
  5. SAP B1 ADDON 开发
  6. 坑爹的UICollectionView
  7. Bootstrap_排版_标题
  8. 使用 ADD-ON SDK 开发 基于 Html JQuery 和 CSS 的 firefox 插件入门教程1: 创建一个简单的 Add-on
  9. Java中遍历Map对象的方法
  10. 一台nginx服务器多域名配置 (转)
  11. ScrollView 嵌套ListView 幻灯冲突,和显示不全
  12. 手把手教你从基础学习JQuery
  13. 打造自己的 JavaScript 武器库(转自SegmentFault公众号)
  14. [POI2007]ZAP-Queries
  15. sessionStorage 前端HTML5会话管理
  16. Select2 4.0.5 API
  17. 【Python】一份非常好的Matplotlib教程
  18. NBU将RAC数据库恢复到单机
  19. python语法_算数运算+赋值运算符+比较运算符+逻辑运算符
  20. openssl查看apk的证书信息

热门文章

  1. MyEclipse Could not create the view: An unexpected exception was thrown解决方案
  2. BZOJ4311:向量
  3. kafka原理学习好文
  4. 本地的html服务
  5. 英语发音规则---O字母
  6. UML类图(二)----------类与类之间的关系之关联(聚合与组合)
  7. Python列表:元素的修改、添加、删除和排序
  8. poj3189二分图多重匹配
  9. Android开发中dp、dpi、px的区别(转)
  10. 第三方开源--Android Image Cropper--图片裁剪