会员
周边
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
fuyun2000
生命有多久,代码就有多长……
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
7
8
9
下一页
2022年11月13日
C中++a和--a什么区别?
摘要: int a=3; ++a和a++什么区别呢?相同点,最后a都会增加1,区别是表达式的值不一样。 对于++或者--这样的表达式有2个作用,一个作用是计算表达式的值,另外的副作用是改变a本身的值 这两个都是表达式,++a表达式的值是a的值+1,即4,并且改变a本身的值,将a改成了4 a++表达式的值是原
阅读全文
posted @ 2022-11-13 08:56 自由小菜园
阅读(701)
评论(0)
推荐(0)
2022年11月12日
那些年被误解的指针和数组
摘要: 误解1: &运算符返回一个地址 解释: &叫做取址运算符,运算的结果是返回一个指向某个数据类型对象的指针。 int a=1; int *p = &a; &a不是地址,通过&运算符获取a的地址,并返回一个指向a的指针,&a是指向a的指针,不是把地址给指针变量p,而是把指针直接赋值给变量p 误解2: 数
阅读全文
posted @ 2022-11-12 09:53 自由小菜园
阅读(69)
评论(0)
推荐(0)
2022年10月26日
C++类模型漫谈(五)
摘要: 系统基于32位,MSVC编译器,VS开发工具 1、上篇讲到菱形继承,我们发现菱形继承会导致有两份的基类TypeA子对象,因为TypeB继承了TypeA,TypeC也继承了TypeA ,所以TypeB子对象和TypeC子对象都会包含TypeA部分。 可以通过虚继承保持只有一个TypeA子对象,至于如何
阅读全文
posted @ 2022-10-26 09:26 自由小菜园
阅读(54)
评论(0)
推荐(0)
2022年10月21日
C++类模型漫谈(四)
摘要: 系统基于32位,MSVC编译器,VS开发工具 1、之前看到的都是简单一点的类型继承,现在看下另外一个例子,菱形继承(又称钻石继承)。一个TypeA基类,TypeB和TypeC继承TypeA,TypeD同时继承TypeB和TypeC。 class TypeA { public: char a1 = 1
阅读全文
posted @ 2022-10-21 13:31 自由小菜园
阅读(51)
评论(0)
推荐(0)
2022年10月20日
C++类模型漫谈(三)
摘要: 系统基于32位,MSVC编译器,VS开发工具 1、上篇直接通过类型对象调用成员函数,这种方式无法实现多态。所谓多态意思对函数的调用呈现出不同的形态。 下面这个例子中 a_ptr为指向a_obj的指针,当调用虚函数时,不再像之前一样直接调用了,而是先从虚函数表获取函数地址间接调用。 而如果是调用非虚函
阅读全文
posted @ 2022-10-20 19:02 自由小菜园
阅读(64)
评论(0)
推荐(0)
2022年10月19日
C++类模型漫谈(二)
摘要: 系统基于32位,MSVC编译器,VS开发工具 1、通过对象对成员函数的调用,默认会给参数传进去一个this指针,该指针为对象的首地址,这个过程通常被编译器隐藏起来了。 对象直接调用成员函数,编译器在编译器就会直接获取到函数地址,汇编语言生成的就是call 函数地址,会有一个寄存器(很多情况是ECX)
阅读全文
posted @ 2022-10-19 13:14 自由小菜园
阅读(61)
评论(0)
推荐(0)
2022年10月18日
C++类模型漫谈(一)
摘要: 系统基于32位,MSVC编译器,VS开发工具 1、一个简单的类型TypeA,类型对象a_obj总共占8个字节。char类型a1占1个字节,但是为了考虑到32位系统存储效率,所以a1变量后面会分配3个字节,用于内存的4字节对齐。 a2变量占用4个字节,对象a_obj的地址等于a1的地址。成员函数Typ
阅读全文
posted @ 2022-10-18 18:23 自由小菜园
阅读(49)
评论(0)
推荐(0)
2022年9月14日
奇怪的编译器“bug”
摘要: 今天看到一个很有意思的代码,一不小心,就会被绕进去,会对结果感到很奇怪,以为是编译器的bug 我们定义一个变量a,再获取一下这个变量对应的地址,后面会用到 获取到局部变量a存的地址为0028ff44,在我的C-Free上测试过,每次运行第一个局部变量都是这个地址。 例1: 执行完 *p=NULL 后
阅读全文
posted @ 2022-09-14 12:17 自由小菜园
阅读(149)
评论(0)
推荐(0)
2022年9月13日
再谈指针和数组
摘要: 指针和数组很多情况下,用法差不多,数组也被隐性转换成指针用,但是不能说数组就是指针,代表的是完全不同的东西。 定义数组的时候会分配一些类型相同的元素空间,而指针只不过是指向某一类型空间的地址而已,本身是一个数据类型,类型的值就是一个地址而已。 之所以很多情况下感觉类似,是因为数组在除了&运算符或者s
阅读全文
posted @ 2022-09-13 18:52 自由小菜园
阅读(50)
评论(0)
推荐(0)
2022年9月11日
漫谈C语言指针和数组
摘要: 指针一直是被很多人误解,包括很多书中对指针的定义也存在很大的歧义,导致看书的人越看越懵,所以指针到底是个什么东西?(注意:文中所有图片不表示实际内存大小,纯属为了画图需要) 指针是地址吗? 很显然指针不是地址,地址只是一个数值,这个数值不可能代表指针。如图 伪代码: int *ap = (int *
阅读全文
posted @ 2022-09-11 10:27 自由小菜园
阅读(159)
评论(0)
推荐(0)
上一页
1
2
3
4
5
6
7
8
9
下一页
公告