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

2024-08-29 01:55:24 2

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

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

本文目录

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

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

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

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

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.

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

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

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

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

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.

文章分享结束,指针变量可以不指向任一单元吗和一个指针变量只能指向同一类型变量吗的答案你都知道了吗?欢迎再次光临本站哦!

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

本文编辑:admin

本文相关文章:


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

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

本文目录多个指针变量不能指向同一个变量,是否正确一个指针变量只能指向同一类型变量吗pascal中指针变量的用法C++中,要使一个指针变量不指向任何对象,应将该指针变量的值赋为指针如果不指向任何变量,那它有意义吗pascal:链表结构和指针变

2024年6月3日 20:50

更多文章:


120帧画质助手下载安卓(画质助手120帧安卓和平精英怎么登录)

120帧画质助手下载安卓(画质助手120帧安卓和平精英怎么登录)

这篇文章给大家聊聊关于120帧画质助手下载安卓,以及画质助手120帧安卓和平精英怎么登录对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录画质助手120帧安卓和平精英怎么登录画质助手120帧安卓加超广角怎么用画质助手120帧安卓

2024年3月29日 17:35

金山打字通2006手机版官方下载(金山打字通的官方下载地址是)

金山打字通2006手机版官方下载(金山打字通的官方下载地址是)

大家好,今天小编来为大家解答以下的问题,关于金山打字通2006手机版官方下载,金山打字通的官方下载地址是这个很多人还不知道,现在让我们一起来看看吧!本文目录金山打字通的官方下载地址是金山打字通怎样下载金山打字通的官方网址是什么哪下载金山打字

2024年7月5日 11:21

游戏排行榜2022前十名(2022最新手游排行榜前十名)

游戏排行榜2022前十名(2022最新手游排行榜前十名)

这篇文章给大家聊聊关于游戏排行榜2022前十名,以及2022最新手游排行榜前十名对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录2022最新手游排行榜前十名游戏排行榜2022前十名2022年最火的游戏前十名2022游戏排行榜前

2024年8月30日 10:45

新浪uc聊天室(新浪uc聊天室注册)

新浪uc聊天室(新浪uc聊天室注册)

大家好,如果您还对新浪uc聊天室不太了解,没有关系,今天就由本站为大家分享新浪uc聊天室的知识,包括新浪uc聊天室注册的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录新浪uc聊天室注册新浪UC聊天室页面为什么打不开

2024年7月19日 06:03

卡车和翻斗车的区别?货车和卡车的是一种车型的两种叫法吗

卡车和翻斗车的区别?货车和卡车的是一种车型的两种叫法吗

“卡车”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看卡车和翻斗车的区别?货车和卡车的是一种车型的两种叫法吗!本文目录卡车和翻斗车的区别货车和卡车的是一种车型的两种叫法吗卡车的英文世界上十大巨型卡车世界最贵十大卡车卡车为什么

2024年5月27日 22:15

随身带个英雄联盟客户端(带着英雄联盟技能穿越的小说)

随身带个英雄联盟客户端(带着英雄联盟技能穿越的小说)

本文目录带着英雄联盟技能穿越的小说求几本穿越到英雄联盟的小说带着英雄联盟技能穿越的小说《随身带着英雄联盟客户端》简介:已经完了意外带着英雄联盟客户端来到武者世界的陈烁,发现自己竟然可以购买游戏中的英雄!于是,他在异世那轰轰烈烈的强者之路开始

2024年5月5日 15:54

速达3000财务软件怎样用?速达软件长时间没用怎么激活使用

速达3000财务软件怎样用?速达软件长时间没用怎么激活使用

本篇文章给大家谈谈速达软件,以及速达3000财务软件怎样用对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录速达3000财务软件怎样用速达软件

2024年6月20日 17:59

找回删除的历史记录(怎么找回删除的历史记录)

找回删除的历史记录(怎么找回删除的历史记录)

本文目录怎么找回删除的历史记录历史记录删了怎么找怎么找回被删除的微信历史聊天记录最近删除的历史记录怎么找回手机如何恢复删除历史记录手机浏览器历史记录删除后能找回吗手机历史记录删除了还能找回来吗百度历史记录删除了怎么恢复浏览器清除的历史怎么找

2024年3月23日 11:10

4949澳门免费资料大全2022(2022澳门正版资料免费公开香港是哪年被英占的)

4949澳门免费资料大全2022(2022澳门正版资料免费公开香港是哪年被英占的)

本篇文章给大家谈谈4949澳门免费资料大全2022,以及2022澳门正版资料免费公开香港是哪年被英占的对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录2022澳门正版资料免费公开香港是哪年被英占的2022澳门正版资料免费公开香

2024年4月21日 08:25

上海曼朗市场营销策划有限公司怎么样?曼朗优化能力怎么样,有合作过的朋友来说说吗

上海曼朗市场营销策划有限公司怎么样?曼朗优化能力怎么样,有合作过的朋友来说说吗

本文目录上海曼朗市场营销策划有限公司怎么样曼朗优化能力怎么样,有合作过的朋友来说说吗曼朗和耐特康赛哪家好曼朗和超快排哪个好曼朗策划怎么样,哪个产品做得好呢曼朗和有客来哪个好,有人接触过吗曼朗好不好上海曼朗市场营销策划有限公司有人了解吗,做得

2024年6月19日 13:48

趣书网txt电子书下载(趣书网app怎么下载到手机)

趣书网txt电子书下载(趣书网app怎么下载到手机)

大家好,今天小编来为大家解答以下的问题,关于趣书网txt电子书下载,趣书网app怎么下载到手机这个很多人还不知道,现在让我们一起来看看吧!本文目录趣书网app怎么下载到手机手机趣书网cc下载找不到了趣书网又叫什么趣书网现在叫什么趣书网怎么下

2024年7月4日 04:25

4399电脑版网页游戏入口(手机怎么进4399电脑版网页游戏)

4399电脑版网页游戏入口(手机怎么进4399电脑版网页游戏)

大家好,4399电脑版网页游戏入口相信很多的网友都不是很明白,包括手机怎么进4399电脑版网页游戏也是一样,不过没有关系,接下来就来为大家分享关于4399电脑版网页游戏入口和手机怎么进4399电脑版网页游戏的一些知识点,大家可以关注收藏,免

2024年6月16日 16:01

侏罗纪公园乐高版(乐高侏罗纪公园怎样获得暴虐霸王龙)

侏罗纪公园乐高版(乐高侏罗纪公园怎样获得暴虐霸王龙)

本文目录乐高侏罗纪公园怎样获得暴虐霸王龙乐高侏罗纪公园手机版单机游戏怎么存档乐高侏罗纪世界图文全教程攻略 乐高侏罗纪世界怎么玩乐高侏罗纪公园手机版怎么获得双龙乐高侏罗纪公园怎么解锁甲龙手机版乐高侏罗纪世界的游戏评价乐高侏罗纪世界怎么解锁迅猛

2024年6月10日 01:36

仙侠世界的真实游戏(主角姓萧从游戏里穿越到古代修真的小说)

仙侠世界的真实游戏(主角姓萧从游戏里穿越到古代修真的小说)

本文目录主角姓萧从游戏里穿越到古代修真的小说求小说,主角可以使用游戏技能的带游戏系统的小说主角姓萧从游戏里穿越到古代修真的小说是《仙侠世界的真实游戏》,作者:蓝波水,主角萧霖。一个现实世界的游戏狂人,带着一枚装有游戏终极神器和药丸的储物戒指

2023年8月25日 04:00

4 3天赋模拟器(请问如何拿javascript制作类似WOW那样的天赋模拟器)

4 3天赋模拟器(请问如何拿javascript制作类似WOW那样的天赋模拟器)

本文目录请问如何拿javascript制作类似WOW那样的天赋模拟器魔兽世界猎人天赋点该怎样加请问兽王系的猎人怎么加天赋,最好给个天赋模拟器的结果形式魔兽世界 经典盗贼 天赋模拟器WOW天赋模拟器是用什么语言写的请问如何拿javascrip

2024年5月13日 00:36

手机视频格式转换器哪个最好(手机视频格式转换器哪个好 视频转换软件哪个好)

手机视频格式转换器哪个最好(手机视频格式转换器哪个好 视频转换软件哪个好)

大家好,关于手机视频格式转换器哪个最好很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于手机视频格式转换器哪个好 视频转换软件哪个好的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希

2024年8月27日 18:10

完美新娘下载(电视剧郭珍倪《完美新娘》片尾曲叫什么名字,有没有下载的连接)

完美新娘下载(电视剧郭珍倪《完美新娘》片尾曲叫什么名字,有没有下载的连接)

本文目录电视剧郭珍倪《完美新娘》片尾曲叫什么名字,有没有下载的连接完美新娘全集电视剧(三十七集全)大结局迅雷下载哪里有啊谁有电影《完美新娘》主题曲MP3下载地址呀要安全的喔~完美新娘的大结局电视剧郭珍倪《完美新娘》片尾曲叫什么名字,有没有下

2024年3月18日 05:25

浏览器打不开网页(手机网络正常,浏览器打不开网页怎么办)

浏览器打不开网页(手机网络正常,浏览器打不开网页怎么办)

本文目录手机网络正常,浏览器打不开网页怎么办电脑浏览器打不开网页是什么原因 教你怎么解决电脑浏览器打不开网页是什么原因浏览器打不开网页怎么解决啊!浏览器打不开网页有哪些原因怎么办电脑浏览器打不开网页怎么解决如何解决电脑浏览器打不开网页浏览器

2024年6月13日 15:12

三国群英传8单机版下载(三国群英传8 去哪下载比较好啊)

三国群英传8单机版下载(三国群英传8 去哪下载比较好啊)

“三国群英传8单机版下载”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看三国群英传8单机版下载(三国群英传8 去哪下载比较好啊)!本文目录三国群英传8 去哪下载比较好啊三国群英传8正式版在哪下载三国群英传8幻想之圣战的下载地

2024年8月13日 17:21

强烈的气息有什么用(dnf 强烈的气息怎么得到)

强烈的气息有什么用(dnf 强烈的气息怎么得到)

本文目录dnf 强烈的气息怎么得到《dnf》强烈的气息怎么获得强烈的气息获得方法是什么dnf强烈的气息有什么用,我玩蓝拳,需要吗强烈的气息有什么用能干啥dnf强烈的气息怎么用DNF普通深渊掉了本命太刀,需要锻造,有哪些获取强烈的气息的方法D

2024年6月29日 07:32

近期文章

本站热文

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
标签列表

热门搜索