什么情况下返回指针?什么情况下返回引用?指针和引用的效果一样么?
这里不仅涉及到引用的实现,也涉及到左值与右值的概念。因为返回值性质的不同决定了引用与指针必定不是相同的。相信你读过我写的这篇文章之后,会有一个比较清醒的认识。
左值(lvalue)和右值(rvalue)最先来源于C语言。最先在C语言中表示位于赋值运算符两侧的两个值,左边的就叫左值,右边的就叫右值。
比如:
int ii = 5; //ii是左值,5是右值
int jj = ii; //jj是左值,ii是右值
上面表明,左值肯定可以作为右值使用,但反之则不然。左值和右值的最早区别就在于能否改变。左值是可以变...
[2011-02-22 22:58] 左值与右值
阅读全文 |
评论次数(0) |
浏览次数(535) |
所属类型(默认类型)
[2011-02-18 15:11] 汇编--32寄存器大全
文章来源:http://www.cppblog.com/merlinfang/archive/2007/07/07/27643.html
32位CPU所含有的寄存器有:
4个数据寄存器(EAX、EBX、ECX和EDX)
2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP)
6个段寄存器(ES、CS、SS、DS、FS和GS)
1个指令指针寄存器(EIP) 1个标志寄存器(EFlags)
1、数据寄存器
数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。
32位CPU有4个32位的通用寄存器EAX、E...
32位CPU所含有的寄存器有:
4个数据寄存器(EAX、EBX、ECX和EDX)
2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP)
6个段寄存器(ES、CS、SS、DS、FS和GS)
1个指令指针寄存器(EIP) 1个标志寄存器(EFlags)
1、数据寄存器
数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。
32位CPU有4个32位的通用寄存器EAX、E...
阅读全文 |
评论次数(0) |
浏览次数(630) |
所属类型(默认类型)
[2010-09-10 13:44] WIN32汇编语言解析
win32汇编中的sizeof
win32汇编中的sizeof不同于其它语言的sizeof ,这个是真正的sizeof,以字节为单位的。
看下例
szhello db 'hello,world!',0
mov eax,sizeof szhello
eax=?
答案是
eax=13
因为hello,world!为13个字节,然后0占一个,所以是13
变量命名风格
前缀 含义
b byte
w word
dw dword
h 句柄
lp 指针
sz 以0结尾的字符串
lpsz 指向以0结尾的字符串的指针
f 表示浮点数
st 表示一个数据结构...
win32汇编中的sizeof不同于其它语言的sizeof ,这个是真正的sizeof,以字节为单位的。
看下例
szhello db 'hello,world!',0
mov eax,sizeof szhello
eax=?
答案是
eax=13
因为hello,world!为13个字节,然后0占一个,所以是13
变量命名风格
前缀 含义
b byte
w word
dw dword
h 句柄
lp 指针
sz 以0结尾的字符串
lpsz 指向以0结尾的字符串的指针
f 表示浮点数
st 表示一个数据结构...
阅读全文 |
评论次数(0) |
浏览次数(816) |
所属类型(默认类型)
[2010-09-10 13:42] 汇编中通用寄存器的目的
1、EAX和AX:累加器,所有的I/O指令用它来与外部设备传送信息
2、EBX和BX:在计算存储单元地址时常用作基地址寄存器
3、ECX和CX:保存计数值
4、EDX和DX:做四字或二字运算时,可以把EDX(DX)和EAX(AX)组合在一起存放一个四字或二字长的数据,在对某些I/O操作时,DX可以放I/O的端口地址
5、ESP和SP:堆栈栈顶指针。
6、EBP和BP:基址寄存器
7、ESI和SI:源变址
8、EDI和DI:目的变址...
2、EBX和BX:在计算存储单元地址时常用作基地址寄存器
3、ECX和CX:保存计数值
4、EDX和DX:做四字或二字运算时,可以把EDX(DX)和EAX(AX)组合在一起存放一个四字或二字长的数据,在对某些I/O操作时,DX可以放I/O的端口地址
5、ESP和SP:堆栈栈顶指针。
6、EBP和BP:基址寄存器
7、ESI和SI:源变址
8、EDI和DI:目的变址...
阅读全文 |
评论次数(0) |
浏览次数(515) |
所属类型(默认类型)