指针变量可以不指向任一单元吗(多个指针变量不能指向同一个变量,是否正确)

2024-06-03 20:50:04 1

指针变量可以不指向任一单元吗(多个指针变量不能指向同一个变量,是否正确)

本文目录

多个指针变量不能指向同一个变量,是否正确

选Bp1和p2定义的是指针变量c为字符变量A项*(取内容符)将p1p2指向的变量的值的和赋给c是可以的。B项c是字符变量p2是指针变量,指针变量只能付地址改为p2=&c是可以的。C项指针就是地址p1和p2是可以相互赋值的。D项是取其内容运算不是指针运算,是对的指针是不能相加的,没有意义的。只有大小比较和相减运算。因为地址在内存中是从小到大按直线排列的所以是可以比较大小的指针相减是相差多少位,它除以所占字节就是指针间元素的个数。

一个指针变量只能指向同一类型变量吗

不一定。可以把变量地址强转成指针的类型。如:void*p;inta;p=(void*)&a;

pascal中指针变量的用法

pascal语言中指针类型和动态数据结构 整型、实型、布尔型等各种简单类型和数组、记录、集合等各种结构类型的数据都属于静态类型的数据。所谓静态类型数据是指使用前必须在程序的说明部分给出描述这种数据的类型说明(TYPE语句)或变量说明(VAR语句),以定义这类数据占用内存空间的大小规模,使系统在程序的编译阶段能对这些变量进行内存空间的分配,空间一旦分配则不能在程序的执行过程中加以改变。现在讨论另一种类型的数据,这些数据和静态类型数据不同,它们无需在程序的变量说明部分对其进行说明,也就是系统在程序编译阶段不对这些变量分配内存空间,而是在程序的运行过程中根据需要用相应的命令动态地建立、分配内存空间,以至这种类型的数据占用内存空间的大小规模可以动态地发生变化,故称之为动态类型数据结构。 一、指针变量以及动态数据的产生 讨论动态类型数据是如何在程序的运行阶段动态地建立起来的,就要讨论与之有关的一种静态类型数据 指针。 指针类型属于静态的简单类型,但和整型、实型、字符型这些简单类型不同。首先整型、实型、字符型的变量单元中存放的是相应类型的数据,而指针类型变量单元中存放的是某种类型变量单元的地址,通过该地址可以找到这种类型的数据,所以称它是一个指针,而这种数据就是动态数据;其次整型、实型、字符型等类型都有规定的标准标识符integer、real、char等与之对应,而指针类型则没有相应的标准标识符。这是因为在动态数据产生的过程中,程序员关心的是指针指向一个什么类型的数据。所以,在Pascal程序说明部分定义指针类型时必须给出该指针类型变量所指向的数据类型,即该指针类型标识何种类型的变量。 如在程序的类型说明部分有: TYPE pint=^integer; pre=^real; 表明程序定义了两种指针类型pint和pre。pint用于标识整型的变量,pre用于标识实型的变量。 若在程序的变量说明部分有指针类型变量的说明: VAR p1,p2:pint; q:pre 表明程序定义了三个指针变量,p1和p2是pint类型的变量,q是pre类型的变量。在程序的编译阶段,同其它简单变量(整型、实型、字符型等)一样,系统要给它们分配空间,这就是前面所说的指针变量是静态变量。在内存空间分配之初,p1、p2和q变量单元还未定义,此时指针变量不指向任何一个内存变量单元,因为所需指向的动态数据单元还未产生,它们是在程序运行过程中利用p1、p2和q变量以及new过程语句动态地产生的。一旦有动态数据产生,则p1、p2变量单元中将存放动态产生的整型变量单元的地址,q变量单元中将存放动态产生的实型变量单元的地址。 动态数据的产生是系统在程序运行阶段执行过程语句new(《指针变量名》)时进行,所产生的动态数据单元用:“《指针变量名》^” 来命名: new(p1):系统动态地产生整型变量单元,即动态地给一个整型变量分配内存单元,并将该单元的地址放入p1单元中。该整型变量单元命名为p1^,表明通过p1指针可访问这个单元的整型数据。 new(q):系统动态地产生实型变量单元,即动态地给一个实型变量分配内存单元,并将该单元地址放入q单元中。该实型变量单元命名为q ^,表明通过q指针可访问这个单元的实型数据。 二、指针类型变量的应用以及动态数据的操作 下面讨论指针类型变量的应用,即如何将整型数据或实型数据等存放到动态产生的相应的内存变量单元中,并对这些单元进行必要的操作。 首先可以用赋值语句将一个指针变量的地址值赋给另一个指针变量,如: p2:=p1,表示将p1单元的地址值赋给p2,此时p2单元的内容也是指向某整型变量单元的地址值。 但p1:=q不行,因为在定义中可见两指针类型所标识的类型变量不同。 下面通过一个简单的例子看指针类型变量的应用: PROGRAM EX00(OUTPUT); TYPE pint=^integer; pre=^real; VAR p:pint; q:pre; BEGIN NEW(p); p^ :=3; NEW(q); q^ :=4.5; q^:=q^* p^; WRITELN(q^); DISPOSE(p);DISPOSE(q) END. 最后语句DISPOSE(p)以及DISPOSE(q)为释放由p和q指针所指向的变量单元。 指针类型变量所指向的数据类型可以是整型,实型,字符型等简单类型,也可以是数组、集合、记录等结构类型。推而广之就有了链表、树结构等的产生及其应用。 如在程序说明部分有链表定义: TYPE Lp=^Litem Litem=RECORD int:integer; next:Lp END; 在该定义中,定义了指针类型Lp,用于标识Litem记录类型的变量。但我们注意到,在定义指针类型Lp时,Litem尚未定义,它的定义是在Lp的定义之后给出的。这种先使用后定义的情况在以上的链表定义中是允许的。 若在程序变量说明部分有: VAR L:Lp 则变量L 为一指针类型变量。在程序运行中,它的值将是一动态产生的记录型变量单元的首地址,即L 是指向记录型数据的指针变量。 若在程序中有: new(L):系统动态地产生记录型变量单元,即动态地给一个记录型变量分配内存单元,并将所分单元的首地址放入L单元中。分配的记录型变量命名为L^,该记录型变量L^有两个域,一是整型数据域L^.int,一是指向另一记录型变量的指针域L^.next。 new(L^.next):同上,系统动态地给一个记录型变量分配内存单元,并将所分单元的首地址放入L^.next单元中。分配的记录型变量命名为L^.next^,该记录型变量L^.next^ 同样有两个域,一是整型数据域L^.next^.int,一是指向另一记录型变量的指针域L^.next^.next。 接下来还可有new(L^.next^.next),new(L^.next^.next^.next)……,一个链表数据结构就随之产生了。但因为链表是一个动态数据结构,它的长度,即链表结点的个数是不可预测的,所以不可能用以上的语句来产生链表的各结点。在以下产生整型单链表的程序中,使用了一个跟踪指针L,用循环的方法产生一个单链表: PROGRAM EX01(INPUT,OUTPUT); TYPE Lp=^Litem; Litem=RECORD int:integer; next:Lp END; VAR head,L:Lp; i:integer; BEGIN NEW(head);L:=head; i:=1; WRITE(’请输入第’,i,’结点值:’); READLN(L^.int); WHILE not eof DO BEGIN i:=i+1; NEW(L^.next);L:=L^.next; WRITE(’请输入第’,i,’结点值: ’); READLN(L^.int) END; L^.next:=nil; (*以上为单链表的产生,以下为单链表的输出*) L:=head; WHILE L^.next《》nil DO BEGIN WRITELN(l^.int); L:=L^.next END END.

C++中,要使一个指针变量不指向任何对象,应将该指针变量的值赋为

三种方式:1. int * pt = NULL;2. int * ppt = 0;3. int * pppt = nullptr; // C++11 新加的。 值为 0 或 NULL,还是 nullptr 的指针不指向任何对象。

指针如果不指向任何变量,那它有意义吗

声明一个指针,而没有赋值,这种指针叫“乱指针”。好比盖了一间房子,没有安排住人,就有流浪汉什么的自己跑里面去住。所以是个乱房子。如:int *p;p没有赋值,它会胡乱指向哪儿,就叫乱指针。它是不能进行各种运算的,结果也是错误的。赋值后就可以使用了:int a=10,b;p=&ab=*p+8;这样b就是18了。你要问有没有意义,从某些方面说,他还是有一定意义的,至少系统给p分配了一个变量空间;但是,如果后面一直不让它指向任何一个具体的普通变量,p将毫无意义!

pascal:链表结构和指针变量的定义问题

指针类型 11.1 指针 11.2 单链表 11.1 指针 指针是通过地址来访问变量的一种特殊的数据类型,属于动态的数据结构,它可以在需要时产生,用完后则又可以取消或回收,以减少占用的内存空间。指针变量与其他类型的变量不同,它占有的不是数据,而是地址。 由于动态数据结构的变量是在程序执行过程中动态生成的,所以不能预先予以说明,无法预先给这些变量起名字,访问时也无法通过名字直接输出或显示,而只能用指针得到其地址,然后间接访问。 1、定义指针类型 在Turbo Pascal中,指针变量用来存放某个存储单元的地址,即指针变量指向某个存储单元。一个指针变量仅能指向某一种类型的存储单元,这种数据类型是在指针类型的定义中确定的,称为指针类型的基类型。指针类型定义如下: 类型名=^基类型名; 例如:type q=^integer; var a,b,c:q; 说明:q是一指向整型存储单元的指针类型,其中"^"为指针符。a,b,c均定义为指针变量,分别可以指向一个整型存储单元。 上例也可用变量说明为: var a,b,c:^integer; 指针也可以指向有结构的存储单元。 例如:type person=record name:string; sex:(male,female); age:20..70 end; var pt:^person; pt为指向记录类型person的指针变量。 2、动态变量 应用一个指针指向的动态存储单元即动态变量的形式如下: 指针变量名^ 例如:p^、q^、r^ 指针变量p和它所指向的动态变量p^之间有如下关系: 以下语句把整数5存放到p所指向的动态变量p^中去: p^:=5; 以下语句把p所指向的p^中的值赋给整型变量i: i:=p^; 如果指针变量p并未指向任何存储单元,则可用下列赋值语句: p:=nil; 其中nil是保留字,表示“空”,相当于C语言里面的null 3、对动态变量的操作 在Turob Pascal程序中,动态变量不能由var直接定义而是通过调用标准过程new建立的。过程形式为: new(指针变量名); 如果有下列变量定义语句: var p:^integer; 仅仅说明了p是一个指向整型变量单元的指针变量,但这个整型单元并不存在,在指针变量p中还没有具体的地址值。在程序中必须通过过程调用语句:new(p);才在内存中分配了一个整型变量单元,并把这个单元的地址放在变量p中,一个指针变量只能存放一个地址。在同一时间内一个指针只能指向一个变量单元。当程序再次执行new(p)时,又在内存中新建立了一个整型变量单元,并把新单元的地址存放在p中,从而丢失了旧的变量单元的地址。 为了节省内存空间,对于一些已经不使用的现有动态变量,应该使用标准过程dispose予以释放。过程形式为:dispose(指针变量名);为new(指针变量名)的逆过程,其作用是释放由指针变量所指向的动态变量的存储单元。例如在用了new(p)后在调用dispose(p),则指针p所指向的动态变量被撤销,内存空间还给系统,这时p的值为 nil。 4.需要注意之处 1、P与P^的区别 P是指向该动态变量的指针变量名,P^则称为动态变量或标志变量。P的值是P^的首地址,P^的值为与基类型相同的一个值。 2、定义后及时分配存储单元 定义了一个指针变量后,并没有为该指针分配动态存储单元,此时的P的值无定义,调用P^则会产生运行错误。若想使该指针可用,可以对指针赋值,也可以通过NEW()过程分配存储单元。 3、使用后及时收回存储单元 指针使用后,不会自动归还占用的存储空间,应及时使用DISPOSE()过程来释放P^所占用的存储单元,以免浪费有限的存储空间. 11.2 单链表 单链表的数据类型可定义如下: type dlb=^node; node=record data:datatype; next:dlb; end; 例1 连续输入一序列整数,组成链表(并以动态的形式把它们记录下来),当输入的数为-1时,停止输入,然后把输入的整数按相反的顺序输出. program lianbiao; type link=^data; data=record num:integer; next:link; end; var p,q:link; i:integer; begin q:=nil; readln(i); while i《》-1 do begin new(p); with p^ do begin num:=i; next:=q; end; q:=p; readln(i); end; while p《》nil do begin write(p^.num:6); p:=p^.next; end; readln; end.

指针变量可以不指向任一单元吗(多个指针变量不能指向同一个变量,是否正确)

本文编辑:admin

本文相关文章:


指针变量可以不指向任一单元吗(一个指针变量只能指向同一类型变量吗)

指针变量可以不指向任一单元吗(一个指针变量只能指向同一类型变量吗)

大家好,关于指针变量可以不指向任一单元吗很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于一个指针变量只能指向同一类型变量吗的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位

2024年8月29日 01:55

更多文章:


边锋游戏大厅官方网站(边锋游戏登陆问题)

边锋游戏大厅官方网站(边锋游戏登陆问题)

大家好,今天小编来为大家解答以下的问题,关于边锋游戏大厅官方网站,边锋游戏登陆问题这个很多人还不知道,现在让我们一起来看看吧!本文目录边锋游戏登陆问题下载边锋游戏中有关宁波麻将怎样下载边锋游戏大厅边锋游戏苹果电脑怎么下载边锋网络游戏3.0大

2024年8月1日 05:35

qq体验版下载最新版(QQ体验版)

qq体验版下载最新版(QQ体验版)

各位老铁们,大家好,今天由我来为大家分享qq体验版下载最新版,以及QQ体验版的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录QQ体验版QQ5.0怎么

2024年8月6日 22:21

游戏法老王与埃及艳后,刚开始玩,它怎么总提示要建棚子和杂耍学校等娱乐设施呀,要建多少个才能过关?法老王的游戏攻略

游戏法老王与埃及艳后,刚开始玩,它怎么总提示要建棚子和杂耍学校等娱乐设施呀,要建多少个才能过关?法老王的游戏攻略

本文目录游戏法老王与埃及艳后,刚开始玩,它怎么总提示要建棚子和杂耍学校等娱乐设施呀,要建多少个才能过关法老王的游戏攻略游戏王里法老王为什么在千年积木里 最后为什么法老王要和游戏决斗游戏王里,游戏就是法老王吗有一款单机游戏名字好像是法老王或者

2024年7月1日 04:33

xvideos video downloader(xvideos账号密码大全)

xvideos video downloader(xvideos账号密码大全)

本文目录xvideos账号密码大全xvideos怎么创建不了账号xvideo总是显示网络错误怎么回事xvideos是什么意思为什么xvideos用移动网络看不了xvideos账号密码大全xvideos没有账号密码大全。因为xvideos的账

2024年7月23日 23:55

冰雪复古传奇手游官网(冰雪复古传奇中装备如何打磨属性)

冰雪复古传奇手游官网(冰雪复古传奇中装备如何打磨属性)

这篇文章给大家聊聊关于冰雪复古传奇手游官网,以及冰雪复古传奇中装备如何打磨属性对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录冰雪复古传奇中装备如何打磨属性传奇冰雪版本是盛大出的吗回收元宝换人民币的传奇手游冰雪复古传奇玩家寄售

2024年6月27日 21:13

优酷手机app下载(怎么下载优酷视频到手机)

优酷手机app下载(怎么下载优酷视频到手机)

今天给各位分享怎么下载优酷视频到手机的知识,其中也会对怎么下载优酷视频到手机进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录怎么下载优酷视频到手机在手机上怎么下载优酷视频手机上下载优酷电视剧怎么下载预告手机怎么

2024年6月3日 18:12

德玛西亚之翼出装(德玛西亚之翼技能主什么副什么该怎么出装前期强势么)

德玛西亚之翼出装(德玛西亚之翼技能主什么副什么该怎么出装前期强势么)

本文目录德玛西亚之翼技能主什么副什么该怎么出装前期强势么德玛西亚之翼咋出装LOL德玛西亚之翼的出装顺序,LOL,德玛西亚之翼出装关于LOL德玛西亚之翼的出装英雄联盟德玛西亚之翼怎么出装德玛西亚之翼技能主什么副什么该怎么出装前期强势么主q副e

2024年6月12日 04:33

视听网电视手机在线直播(cctv新视听怎么看直播)

视听网电视手机在线直播(cctv新视听怎么看直播)

大家好,如果您还对视听网电视手机在线直播不太了解,没有关系,今天就由本站为大家分享视听网电视手机在线直播的知识,包括cctv新视听怎么看直播的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录cctv新视听怎么看直播如

2024年4月8日 12:50

石家庄地铁规划(石家庄地铁一号线三期还建吗)

石家庄地铁规划(石家庄地铁一号线三期还建吗)

本文目录石家庄地铁一号线三期还建吗石家庄地铁什么时候开通石家庄“十四五“交通建设: 规划图出炉 地铁4号线等要报批石家庄地铁何时恢复石家庄地铁规划9条石家庄地铁5号线有规划了吗,到不到南三环红旗大街石家庄地铁会不会修到铜冶镇石家庄为什么把很

2024年3月16日 03:20

海外短信验证码平台(注册国外社交账户需要的国外手机号短信验证码接收平台收集)

海外短信验证码平台(注册国外社交账户需要的国外手机号短信验证码接收平台收集)

大家好,关于海外短信验证码平台很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于注册国外社交账户需要的国外手机号短信验证码接收平台收集的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,

2024年6月29日 10:21

宽带测速在线测网速(怎么在线测试网速多少兆呢)

宽带测速在线测网速(怎么在线测试网速多少兆呢)

“宽带测速在线测网速”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看宽带测速在线测网速(怎么在线测试网速多少兆呢)!本文目录怎么在线测试网速多少兆呢手机怎么测宽带网速如何测联通宽带网速电信宽带如何在线测速手机如何测家里宽带网

2024年8月14日 08:51

如何生成电子公章(电子印章如何制作)

如何生成电子公章(电子印章如何制作)

大家好,关于如何生成电子公章很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于电子印章如何制作的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目录电子印章如何

2024年5月16日 06:25

微信扫一扫翻译功能怎么用?扫一扫英语翻译

微信扫一扫翻译功能怎么用?扫一扫英语翻译

大家好,今天小编来为大家解答以下的问题,关于扫一扫翻译,微信扫一扫翻译功能怎么用这个很多人还不知道,现在让我们一起来看看吧!本文目录微信扫一扫翻译功能怎么用扫一扫英语翻译微信一键翻译图片中的英文的方法微信扫一扫翻译功能怎么使用微信扫一扫翻译

2024年7月24日 14:52

火箭惨败马刺替补史密斯(94和95年火箭夺冠是的主力阵容和所有替补都有谁)

火箭惨败马刺替补史密斯(94和95年火箭夺冠是的主力阵容和所有替补都有谁)

“火箭惨败马刺替补史密斯”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看火箭惨败马刺替补史密斯(94和95年火箭夺冠是的主力阵容和所有替补都有谁)!本文目录94和95年火箭夺冠是的主力阵容和所有替补都有谁火箭VS马刺直播 火

2024年7月9日 20:45

官居几品下载(求助,官居几品从哪里可以下到破解版)

官居几品下载(求助,官居几品从哪里可以下到破解版)

本文目录求助,官居几品从哪里可以下到破解版谁有橙光 官居几品 pc版下载有官居几品破解版吗官居几品有下载到电脑上的单机游戏版吗我想要《官居几品》的破解版,不知道你还有没有海瑞是那个朝代的人他最后官居几品求助,官居几品从哪里可以下到破解版之后

2024年2月8日 07:00

平安养老险官方网(中国平安养老保险官方网站)

平安养老险官方网(中国平安养老保险官方网站)

各位老铁们好,相信很多人对平安养老险官方网都不是特别的了解,因此呢,今天就来为大家分享下关于平安养老险官方网以及中国平安养老保险官方网站的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录中国平安养老保险官方网站中国

2024年9月2日 22:10

同花顺网上行情交易软件下载(如何手机安装华融证券同花顺交当软件)

同花顺网上行情交易软件下载(如何手机安装华融证券同花顺交当软件)

其实同花顺网上行情交易软件下载的问题并不复杂,但是又很多的朋友都不太了解如何手机安装华融证券同花顺交当软件,因此呢,今天小编就来为大家分享同花顺网上行情交易软件下载的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录

2024年4月11日 02:05

爬虫软件介绍是什么?爬虫软件是什么意思

爬虫软件介绍是什么?爬虫软件是什么意思

本文目录爬虫软件介绍是什么爬虫软件是什么意思尖叫青蛙网络爬虫软件Python为什么叫爬虫辟谣 - 常见爬虫软件真的可以获取用户隐私信息吗好用的爬虫抓取软件有哪些机器人软件、蜘蛛软件、爬虫软件、刷奖软件有什么区别有什么好用的股票交易数据爬虫类

2024年6月4日 07:16

十大烧脑智力题(烧脑版脑筋急转弯汇总和答案大全)

十大烧脑智力题(烧脑版脑筋急转弯汇总和答案大全)

今天给各位分享烧脑版脑筋急转弯汇总和答案大全的知识,其中也会对烧脑版脑筋急转弯汇总和答案大全进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录烧脑版脑筋急转弯汇总和答案大全智商测试10道题(这10道题非常烧脑)经

2024年6月29日 16:50

www新商盟(登录新商盟官方网站账号忘了怎么找回)

www新商盟(登录新商盟官方网站账号忘了怎么找回)

本文目录登录新商盟官方网站账号忘了怎么找回登录新商盟官方网站账号忘了怎么找回旁边有忘记密码的选项,使用一下即可找回密码。付费内容限时免费查看回答具体情况如下:第一步用手机或者电脑都可以操作,用其登录新商盟的官方网站(www.xinshang

2024年5月4日 15:30

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1730
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1155
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1152
标签列表

热门搜索