指针表达式怎么写

1.C语言中的指针表达式,请大家根据图详细讲下,谢谢

先教你一个区分左值和右值的方法:

你可以试着对表达式进行取址操作,如果表达式不能进行取址的话,那么就可以看做右值。如果可以取址,就有可能是左值也有可能是右值。

举个例子 int a = 0; 这里对a进行取址操作,&a,是合法的,所以a可以是左值也可以是右值;

再来,&0,这样肯定不行的,所以0是个右值。同样的像"a"、a+b这类的都属于右值。

然后说你发的图:

第一个图:cp是个指向char的指针。

char c = 'a';

char *cp = &c;

图一简单描述如上,首先他是一个指针,他指向的内存里放的是char型的'a'。

那么按照我给你的技巧试一下,对cp进行取址操作,即&cp,这是合法的,也就是说cp可能是左值也可能是右值。

cp是左值的例子:char temp = 'd'; cp = &temp; //这里cp是左值(图一的右边)

cp是右值的例子:char *cp2 = cp; //这里cp是右值(图一左边)

第二张图:&cp,还是按照我给你的方法,&(&cp)这是不合法的,所以&cp只能当做右值。

&cp做右值的例子:char **cpp = &cp; //这里实际上是用一个临时的地址存放了&cp的值并附给cpp。

从上面的例子可以看出&cp实际上是临时的一个值,你并不知道他的内存地址,所以不能给他赋值,也就是不能把&cp当左值。

第三张图还是用那方法。&(*cp)是合法的所以可以是左值也可以是右值。

左值例子:*cp = 's'; //图三右边;

右值例子:char s = *cp; //图三左边;

第四张图:&(*cp+1)是不合法的。所以*cp+1只能是右值;

右值例子:int n = (int)(*cp+1); //这里跟第二张图情况一样,实际上*cp+1的结果是个临时的值,所以不能对这个临时的值进行赋值,也就是说他不可以当左值。

2.vb中指针的表达式

vb指针是有的,只不过被隐藏起来了,因为vb官方不鼓励用户使用指针。

VarPtr 得到的内存地址

ObjPtr 是得到对象入口地址

StrPtr 字符串地址

示例:

Private Sub Form_Load()

Dim Test As Long

Test = "123"

Debug.Print VarPtr(Test)

Debug.Print StrPtr(Test)

End Sub

VarPtr(Test)可以得到变量“Test”的内存地址。

StrPtr(Test)可以得到变量“Test”中值的内存地址,也就是储存“123”这块内存的地址。

这三个函数配合CopyMemory这个API函数可以达到和C语言的指针差不多的效果。

&H---------是表示十六进制。

3.指针的类型表达式是int(*)[3]

楼主你好。首先学习指针是有好多概念容易混淆。下面我来帮你区别一下:

1、int(*ptr)[3];------ptr为指向含3个元素的一维整形数组的指针变量(是指针)

2、int *ptr[3];-------定义指针数组ptr,它由3个指向整型数据的指针元素组成(是数组)

3、int(*)[3];--------实际上可以看作是一种数据类型。也就是第一个(int(*ptr)[3];)中定义的ptr的数据类型

其实你要看这种到底是什么,就是要看他最先和谁结合。 比如1中ptr先与*结合,那就说明ptr本质是一个指针;而2中ptr先与后面的[3]结合,说明他本质是一个数组。再慢慢理解。希望能帮到你。如有疑问可以再问我。

4.用指针作if语句的条件表达式意味著什么

当把一个指针作为条件表达式时,所要判断的条件实际上就是“该指针是否为一空指针”。在if,while,for或do/while等语句中,或者在条件表达式中,都可以使用指针。请看下例:

if(p)

{

/*dO something*/

}

else

{

/* dOsomethingelse */

}

当条件表达式的值不等于零时,if语句就执行“then”子句(即第一个子句),即“if(/*something*/)”和“if(/*something*/!=0)”是完全相同的。因此,上例和下例也完全相同:

if(p !=0)

{

/* dO something(not anull pointer)*/

}

else

{

/* dOsomethingelse(a null pointer)*/

}

以上两例中的代码不易读,但经常出现在许多C程序中,你不必编写这样的代码,但要理解这些代码的作用。

5.指针

指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。

指针也是一种数据类型,并且也是有值的。要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。

让我们分别说明。 先声明几个指针放着做例子: 例一: (1)int *ptr; (2)char *ptr; (3)int **ptr; (4)int (*ptr)[3]; (5)int *(*ptr)[4]; 1。

指针的类型。 从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型。

这是指针本身所具有的类型。让我们看看例一中各个指针的类型: (1)int *ptr; //指针的类型是int * (2)char *ptr; //指针的类型是char * (3)int **ptr; //指针的类型是 int ** (4)int (*ptr)[3]; //指针的类型是 int(*)[3] (5)int *(*ptr)[4]; //指针的类型是 int *(*)[4] 怎么样?找出指针的类型的方法是不是很简单? 2。

指针所指向的类型。 当你通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译器将把那片内存区里的内容当做什么来看待。

从语法上看,你只须把指针声明语句中的指针名字和名字左边的指针声明符*去掉, 剩下的就是指针所指向的类型。例如: (1)int *ptr; //指针所指向的类型是int (2)char *ptr; //指针所指向的的类型是char (3)int **ptr; //指针所指向的的类型是 int * (4)int (*ptr)[3]; //指针所指向的的类型是 int()[3] (5)int *(*ptr)[4]; //指针所指向的的类型是 int *()[4] 在指针的算术运算中,指针所指向的类型有很大的作用。

指针的类型(即指针本身的类型)和指针所指向的类型是两个概念。当你对C越来越熟悉时,你会发现,把与指针搅和在一起的"类型"这个概念分成"指针的类型"和"指针所指向的类型"两个概念,是精通指针的关键点之一。

我看了不少书,发现有些写得差的书中,就把指针的这两个概念搅在一起了,所以看起书来前后矛盾,越看越糊涂。3。

指针的值,或者叫指针所指向的内存区或地址。 指针的值是指针本身存储的数值,这个值将被编译器当作一个地址,而不是一个一般的数值。

在32位程序里,所有类型的指针的值都是一个32位整数,因为32位程序里内存地址全都是32位长。 所以不管任何类型的指针,它占据的存储空间都是4个字节。

指针所指向的内存区就是从指针的值所代表的那个内存地址开始,长度为sizeof(指针所指向的类型)的一片内存区。以后,我们说一个指针的值是XX,就相当于说该指针指向了以XX为首地址的一片内存区域;我们说一个指针指向了某块内存区域,就相当于说该指针的值是这块内存区域的首地址。

指针所指向的内存区和指针所指向的类型是两个完全不同的概念。在例一中,指针所指向的类型已经有了,但由于指针还未初始化,所以它所指向的内存区是不存在的,或者说是无意义的。

以后,每遇到一个指针,都应该问问:这个指针的类型是什么?指针指向的类型是什么?该指针指向了哪里? 4。 指针本身所占据的内存区。

指针本身占了多大的内存?你只要用函数sizeof(指针的类型)测一下就知道了。在32位平台里,指针本身占据了4个字节的长度。

指针本身占据的内存这个概念在判断一个指针表达式是否是左值时很有用。补充:何为32位机器和字长?32位系统指机内 数据长度,指令长度,地址长度是二进制32位。

64位系统指机内 数据长度,指令长度,地址长度是二进制64位。 64位系统速度快。

32位系统系统要寻高于32位的地址就要用到复杂一点的运算,用两个32位单元组合成(好几步才能到位)。64位系统直接寻址(一步到位)。

32位的寄存器和指令集不能及时进行相应的处理运算。32位处理器一次只能处理32位,也就是4个字节的数据;而64位处理器一次就能处理64位,即8个字节的数据。

字长:电脑技术中对CPU在单位时间内(同一时间)能一次处理的二进制数的位数叫字长。所以能处理字长为8位数据的CPU通常就叫8位的CPU。

同理32位的CPU就能在单位时间内处理字长为32位的二进制数据。字节和字长的区别:由于常用的英文字符用8位二进制就可以表示,所以通常就将8位称为一个字节。

字长的长度是不固定的,对于不同的CPU、字长的长度也不一样。8位的CPU一次只能处理一个字节,而32位的CPU一次就能处理4个字节,同理字长为64位的CPU一次可以处理8个字节。

指针表达式怎么写

转载请注明出处育才学习网 » 指针表达式怎么写

知识

游玩类作文怎么写

阅读(249)

本文主要为您介绍游玩类作文怎么写,内容包括游记类作文怎么写,游玩作文怎么写,游记作文怎么写。按游览的顺序描写景物.写作时,要在认真观察和记忆游览的景物的基础上,按照见到景物的次序,来所写看到的景物.这样才能做到条理清楚、自然、明

知识

药店自荐书怎么写

阅读(241)

本文主要为您介绍药店自荐书怎么写,内容包括药店主管自荐书怎么写,药店主管自荐书怎么写,怎么写药店店员表扬怎么写药店店员表扬信。给你看看一封别人的自荐书吧,自己在添加点在管理方面的东西。 自荐书不能太长但是要每点都提到你的优点。

知识

我爱读经典怎么写

阅读(212)

本文主要为您介绍我爱读经典怎么写,内容包括我爱经典怎么写作文,“我爱读经典”手抄报怎么写啊,我爱读经典作文。“我爱经典”之范文五则 作者:佚名 时间:2007-11-16 22:43:32 来源:会员转发 人气: 829 四季 燃起一炉瑞脑

知识

贝字用隶书怎么写

阅读(311)

本文主要为您介绍贝字用隶书怎么写,内容包括“贝”字的篆体怎么写,"字"用隶书怎么写,贝字在田字格中怎么写。

知识

扫水日记怎么写

阅读(240)

本文主要为您介绍扫水日记怎么写,内容包括扫水日记100字,扫地怎么写日记,两百字,我帮妈妈扫地得日记怎么写。今天早上,五(1)班的暖器漏水了,楼下的暖器也齐刷刷地漏水了,好像有谁在暗处破坏似的。 我班的同学也不愿意坐收渔利,集合人员全部出动,簸

知识

符里面的魔怎么写

阅读(254)

本文主要为您介绍符里面的魔怎么写,内容包括符咒上为什么会写煞字,怎么取得魔法卡片里的魔符,符咒上的印章写的什么。这个问题问得好,很专业,估计没几个人能回答得上来吧。包括一些当了道士的。罡和煞是道教符咒的根本。你只问到了煞没有问到

知识

业务合议书怎么写

阅读(240)

本文主要为您介绍业务合议书怎么写,内容包括审议书怎么写,夫妻约定合议书怎么写,业务计划书怎么写合格式。专项审计业务约定书甲方:乙方:丙方:兹由甲方委托乙方对丙方年度进行审计,对丙方年度财务决算专项说明进行专项审计,对财务决算报表中的其

知识

轩字行草怎么写

阅读(0)

本文主要为您介绍轩字行草怎么写,内容包括轩行书怎么写,轩行书怎么写,龙颜轩书法行草怎么写。(明轩)字可使用行书或者草书。(行书)给人自由活泼的感觉。(草书)给人放荡不羁的感觉。(明轩)蔡云汉简体行书写法和中国龙新草体写法:<i

知识

符号用拼音怎么打

阅读(263)

本文主要为您介绍符号用拼音怎么打,内容包括有什么符号是能用拼音打出来的例如:丿.丶.灬,一个符号用拼音怎么打,符号、用拼音怎么打。这个有好多啦~ 比如搜狗输入法 丿输入pie , 丶输入dian ,灬输入huo ,卩输入jie ,按照这个思路,亻dan ,彳chi,

知识

延时巾怎么用

阅读(220)

本文主要为您介绍延时巾怎么用,内容包括延时温巾怎么用,耐氏延时湿巾怎么用,延时温巾怎么用。你好,朋友。早泄是由前列腺炎而造成的病症。前列腺日常预防十习惯:1.多饮水。 2.不憋尿。3.节制生活。预防前列腺肥大,需要从青壮年开始

知识

百洛油怎么用

阅读(277)

本文主要为您介绍百洛油怎么用,内容包括百洛油在护肤过程里应该用在哪一步,百洛护肤油怎么用有去疤效果吗,有没有宝妈怀孕期间用百洛油,怎么用育儿问答宝宝树。百洛油在护肤过程里应该用在护肤水、精华液、眼霜、乳液之后,代替面霜进行使用(

知识

鲤鱼的鲤字怎么写

阅读(275)

本文主要为您介绍鲤鱼的鲤字怎么写,内容包括鲤鱼的鲤怎么写,鲤鱼的鲤怎么组词,鲤鱼的鲤能组什么词。鲮鲤、鲤风、赠鲤、烹鲤、鲤子、角鲤、乘鲤、龙鲤、鲤鱼、控鲤、黄鲤、鲤素、鲤簰、双鲤、鲈鲤、剖鲤、锦鲤、驾鲤、跃鲤、鲤对、素鲤、冰

知识

延期送达怎么写

阅读(234)

本文主要为您介绍延期送达怎么写,内容包括向法院写延期申请怎么写,送达书怎么写,有原告向法院申请延期送达起诉书副本的情形吗好像没见过“延期送。延 期 开 庭 申 请 书申请人:地 址: 本人(单位)作为XXXXXXXXXXXX一案的被告,收到XXXXX人民法院

知识

白落歌英文怎么写

阅读(266)

本文主要为您介绍白落歌英文怎么写,内容包括落魄用英文怎么说,巴布瑞英文怎么写,夜歌用英文怎么说。Edelweiss, edelweiss, Every morning you greet me. Small and white, C

知识

html标签里怎么写el表达式

阅读(580)

本文主要为您介绍html标签里怎么写el表达式,内容包括怎样用EL表达式或标准标签输出HTML标记,EL表达式可以在html页面里使用吗,html支持el表达式吗。使用 thymeleaf 就像jstl标签库一样使用,可以让html变得和jsp一样使用

知识

字段表达式怎么写

阅读(176)

本文主要为您介绍字段表达式怎么写,内容包括vfp中使用查询中筛选字段表达式怎么写,vfp中使用查询中筛选字段表达式怎么写,sql语句中的字段的值是一个表达式时,怎么书写才是规范的搜狗问。多个字段排序的时候,按照你在order by 之中指定的顺

知识

指针怎么用

阅读(186)

本文主要为您介绍指针怎么用,内容包括c语言中指针怎么使用,指针的用法,c中指针怎么用。指针指向变量:下面有这样一个代码块:int main() {int a=10;int b=15;test(a,b);printf("a=

知识

信息检索表达式怎么写

阅读(289)

本文主要为您介绍信息检索表达式怎么写,内容包括CNKI检索的检索表达式怎么写急求~,文献检索表达式怎么写在线等,信息检索表达式怎么写。题名=A OR 摘要%B AND (作者=C OR 机构=D) NOT 来源=E在题名中对“A”进行精确检索,或者在摘要中对“B”

知识

手表指针英语怎么写的

阅读(311)

本文主要为您介绍手表指针英语怎么写的,内容包括手表的指针用英语怎么说,手表的指针用英语怎么说,钟表指针的英文。钟表指针的英文:Clock pointer例:Good relations are like needles of clock. 美好的

知识

c语言条件表达式怎么写

阅读(472)

本文主要为您介绍c语言条件表达式怎么写,内容包括C语言条件表达式,C语言的条件表达式,关于C语言的问题“关系为x是3或5的倍数的C语言条件表达式怎么写。if(n=c1);printf("%f",c);if else(n=d1);printf("%f",d);if else(n=e1);p

知识

文字表达式怎么写

阅读(222)

本文主要为您介绍文字表达式怎么写,内容包括化学的文字表达式怎么写,化学反应文字表达式怎么写,如何用word写文字表达式。例如:1.水电解2.氢气燃烧3.无水硫酸铜遇水变蓝4.蓝色氯化钴遇水变红5.实验室制氧气6.实验室制取二氧化碳7.二氧化碳水

知识

符号表达式怎么写

阅读(255)

本文主要为您介绍符号表达式怎么写,内容包括初三化学符号表达式怎么写,初三化学符号表达式,初中化学所有文字表达式(化学符号)。1. 点燃 石蜡+氧气 → 水+二氧化碳 无化学

[/e:loop]