c++中是否可寻址方式的问题

C++第10周第2次课总第21次课_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
&&¥0.50
C++第10周第2次课总第21次课
阅读已结束,如果下载本文需要使用
想免费下载本文?
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢c++ 非法的间接寻址_百度知道
c++ 非法的间接寻址
提示非法的间接寻址 定义的时候是这样定义的void*BYTE *MyA 请问下如何修改才能实现上面的语句*address=(void*)MyArray[i]
提问者采纳
MyArray = new BYTE[100]; / //&MyArray[10]代表第11个元素的地址;给MyArray赋值;&#47,指向一个数组address = (void*)&MyArray[10],所以此地址是BYTE*类型//MyArray[10]代表第11个元素/&#47,因为元素是BYTE类型void *BYTE * MyArray
提问者评价
其他类似问题
间接寻址的相关知识
按默认排序
其他1条回答
address = (void *)MyArray[i];
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁c++ 内存寻址 不知道怎么问呢……_百度知道
c++ 内存寻址 不知道怎么问呢……
就是……怎么说呢。今天在网上看了一篇文章,里面有段汇编代码,其中有对寄存器的操作,我想用c憨丹封柑莩纺凤尸脯建++同样实现对寄存器的操作应该怎么做啊?如果不行,有什么好一点的汇编编译器可以介绍一下呢?汇编代码:entry start start: mov ax,#0xb800 mov es,ax seg es mov [0],#0x41 seg es mov [1],#0x1f loop1: jmp loop1
提问者采纳
在c++中通过__asm关键字可以讲一段代码当作汇编处理的。比如void main(){
printf(“test”); __asm
MOV DX,憨丹封柑莩纺凤尸脯建 0xD007
OUT AL, DX
}}前面当作普通c++,__asm里面当作汇编处理
提问者评价
嗯,但是我用的是codeblocks……说白了这破玩意根本不支持内联汇编……
其他类似问题
内存寻址的相关知识
其他1条回答
masm或可一试
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁寻址方式在C++程序设计语言中的应用--《科技资讯》2006年13期
寻址方式在C++程序设计语言中的应用
【摘要】:文章介绍了寻址方式的必要性,详细分析了立即寻址方式、直接寻址方式、直接变址寻址方式和间接寻址方式在 c++程序设计语言中的应用。
【作者单位】:
【关键词】:
【分类号】:TP311.11【正文快照】:
1、引用 计算机是通过执行指令序列来解决问题的,计算机中的指令由操作码和操作数两部分组成,操作数的表示可以是一个具体的数据,也可以是操作数的地址或是地址的一部分,还可以是指向操作数地址的指针或其他有关操作数的信息,但不管操作数以何种形式表现,它总是先要导人内存,
欢迎:、、)
支持CAJ、PDF文件格式,仅支持PDF格式
【引证文献】
中国期刊全文数据库
刘正红;;[J];电子世界;2012年23期
【同被引文献】
中国期刊全文数据库
郭旭平;;[J];机械管理开发;2006年06期
【相似文献】
中国期刊全文数据库
朱相鸣;;[J];湖北教育学院学报;2006年02期
梁燕;;[J];科技信息(学术研究);2008年01期
刘静,刘琨;[J];福建电脑;2005年07期
张丽娟;黄志艳;李建东;;[J];科教文汇(下旬刊);2008年08期
张洪业;[J];中国远程教育;1982年01期
李春香;[J];河北广播电视大学学报;2001年03期
李传鸿;;[J];牡丹江师范学院学报(自然科学版);2001年01期
单超;沈绪榜;王卫涛;;[J];计算机工程与应用;2007年33期
王海;[J];电脑知识与技术;2004年05期
郭旭平;;[J];机械管理开发;2006年06期
中国重要会议论文全文数据库
王水清;戴震;张昊;孔石头;;[A];中国计量协会冶金分会2011年会论文集[C];2011年
肖宏海;;[A];年船舶通信导航论文集[C];2009年
杨丽荣;;[A];冶金企业自动化、信息化与创新——全国冶金自动化信息网建网30周年论文集[C];2007年
王玺;薛恒飞;何艳玲;马琪尔;;[A];四川省通信学会2006年学术年会论文集(一)[C];2006年
苏绍璟;周靖;;[A];第三届全国嵌入式技术和信息处理联合学术会议论文集[C];2009年
陈玉俊;;[A];中国计量协会冶金分会2011年会论文集[C];2011年
肖剑辉;叶宇煌;;[A];2009年通信理论与信号处理学术年会论文集[C];2009年
齐国清;;[A];大连海事大学校庆暨中国高等航海教育90周年论文集(船舶通信与导航分册)[C];1999年
汤之珉;付有才;钱喜萍;;[A];全国岩石边坡、地下工程、地基基础监测及处理技术学术会议论文选集[C];1993年
李强;潘明;许勇;;[A];广西计算机学会2005年学术年会论文集[C];2005年
中国重要报纸全文数据库
洪宝月;[N];中国电脑教育报;2003年
洪月华;[N];中国电脑教育报;2003年
洪月宝;[N];中国电脑教育报;2003年
洪宝月;[N];中国电脑教育报;2003年
洪宝月;[N];中国电脑教育报;2003年
孟海江;[N];电脑报;2002年
深圳商报记者 李玫
李婷婷;[N];深圳商报;2006年
彭美源;[N];云南经济日报;2006年
海心阁 糯米;[N];电脑报;2003年
张洪;[N];中国企业报;2007年
中国博士学位论文全文数据库
余洁;[D];中国科学技术大学;2007年
丁继红;[D];吉林大学;2006年
琚小明;[D];浙江大学;2004年
中国硕士学位论文全文数据库
韩薇;[D];国防科学技术大学;2009年
王勋;[D];国防科学技术大学;2008年
潘海祥;[D];江南大学;2008年
王勇;[D];吉林大学;2004年
耿乃康;[D];西安电子科技大学;2007年
高明皓;[D];天津大学;2006年
郑琼琼;[D];华南理工大学;2012年
李洋;[D];合肥工业大学;2008年
梁冰冰;[D];上海交通大学;2007年
孙立锋;[D];吉林大学;2006年
&快捷付款方式
&订购知网充值卡
400-819-9993
《中国学术期刊(光盘版)》电子杂志社有限公司
同方知网数字出版技术股份有限公司
地址:北京清华大学 84-48信箱 知识超市公司
出版物经营许可证 新出发京批字第直0595号
订购热线:400-819-82499
服务热线:010--
在线咨询:
传真:010-
京公网安备74号您所在的位置: &
C++左值与右值之间共同与不同点解析
C++左值与右值之间共同与不同点解析
C++左值与右值都有哪些不同之处,又有哪些联系呢?我们将会通过对这篇文章的介绍,为大家详细讲解有关内容,帮助大家理解。
编程语言与C语言相比有很多不同之处,而且这些不同的地方有都体现着非常重要的作用。现在我们将会为大家详细介绍一下有关C++左值与右值之间的一些联系,希望能帮助大家对这一语言有一个深刻的认识。
1. C++左值与右值概念
变量和文字常量都有存储区,并且有相关的类型,区别在于变量是可寻址的;
对于每个变量,都有2个值与其相关联:
1&数据值,存储在某个内存地址中,也称右值(rvalue),右值是被读取的值(read value),文字常量和变量都可被用于右值。
2&地址值,即存储数据值的那块内存地址,也称左值(lvalue),文字常量不能被用作左值。
2 . C++左值与右值的相关问题
给表达式加上括号: ++a--
结果 ++(a--)
这个表达式是非法的,因为前增量操作要求一个可修改的左值,而 &a--& 不是左值(即右值)
3 . C++左值与右值中前增量和后增量的区别
早期的c语言教材,for循环语句通常写成:
for(int i=0;i&10;i++)
而现在多为:
for(int i=0;i&10;++i)
两者有区别吗?
a++ 即是返回 a的值,然后变量 a 加 1,返回需要产生一个临时变量类似于
{& &int&temp&=&a;& &aa=a+1;& &return&&//返回右值& &}&&
++a 则为:
{& &aa=a+1;& &return&&a;&//返回左值& &}&&
显然,前增量不需要中间变量,效率更高。
C++左值与右值的含义与误区
术语 &L-Values& 和 &R-Values& 是很容易被搞混的,因为它们的历史渊源也是混淆。他们最初起源是编译器的设计者,从字面上来理解就是表达式左边的值和表达式右边的值。它们的含义一直在演化而名字却没变,现在已经&名&不副&实&了。虽然还是称为left-value 和right-value,但是他们的含义已经大大不同了。
C++ 03 标准上是这样写的: &每一个表达式要么是一个 lvalue,要么就是一个 rvalue。&
记住,lvalue和rvalue是针对表达式而言的。
lvalue 是指那些单一表达式结束之后依然存在的持久对象。例如: obj,*ptr, prt[index], ++x 都是 lvalue。
rvalue 是指那些表达式结束时(在分号处)就不复存在了的临时对象。例如:1729 , x + y , std::string(&meow&) , 和 x++ 都是 rvalue。
++x 和 x++ 的区别的语义上的区别: 当写 int i = 10 ; 时, i 是一个 lvalue,它实际代表一个内存里的地址,是持久的。 表达式 ++x 也是一个 lvalue,它修改了 x 的值,但还是代表原来那个持久对象。但是,表达式 i++ 却是一个 rvalue,它只是拷贝一份i的初值,再修改i的值,最后返回那份临时的拷贝,那份拷贝是临时对象。 ++i 和 i++ 都递增i,但 ++i 返回i本身,而 i++ 返回临时拷贝。这就是为什么 ++i 之所以是一个 lvalue,而 i++ 是一个 rvalue。
lvalue 与 rvalue 之分不在于表达式做了什么,而在于表达式代表了什么(持久对象或临时产物)。 判断一个表达式是不是 lvalue 的直接方法就是&能不能对表达式取址?&,如果能够,那就是一个 lvalue;如果不能,那就是一个 rvalue。
以上就是我们为大家介绍的有关C++左值与右值的相关介绍。【责任编辑: TEL:(010)】
关于的更多文章
Linux之父对C++进行了炮轰,说它是糟糕程序员的垃圾语言,可谓是
本次的专刊为大家提供了Oracle最新推出的Java SE 8详细的开发教程,从解读到探究Java 8最新
这个架构是从我近期在做的一个项目中剥离出来的,这个
MongoDB的转变也正是10gen的转变,Dwight Merriman在
在过去的近十年的时间里,面向对象编程大行其道。以至
本书是《网管第一课》系列图书中的第一本,是专门针对高校和培训机构编写的,其主要特点是内容细而精、针对性强。书中内容全是经
51CTO旗下网站}

我要回帖

更多关于 寻址方式 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信