稳压器哪个牌子好2个指针各代表什么

我家的稳压器指针指在电压120上怎么回事_百度知道
我家的稳压器指针指在电压120上怎么回事
前些日子指针还在200-220上不知怎么越来越少.这几天到了120.电脑启动还正常.这样对电脑是不是有影响
提问者采纳
计算机是可以在120V的电压下工作的 计算机使用开关电源 开关电源对电压适应性是很强的 但是这个现象 只能怀疑2两个地方 一个是表头有问题 但是我看并不像 还有一个是稳压器电压反馈回路出问题了 导致不能正确调节输出电压
提问者评价
其他类似问题
稳压器的相关知识
按默认排序
其他1条回答
一定是电压表坏了,否则电脑是无法启动的
您可能关注的推广回答者:回答者:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁您好,欢迎回来
您好,欢迎来到中国供应商!
当前位置:
&德力西电气 TND2-0.5KVA 指针式高精度全自动交流稳压器 0.5KW
德力西电气 TND2-0.5KVA 指针式高精度全自动交流稳压器 0.5KW
订货量(个)
100 - 9999
所 &在&地:浙江&温州
发 &货&期:不限
供货总量:0个(个)
最小起订量:
联系人:朱雷勇先生
经营模式:
浙江 温州 乐清市 中国 浙江 乐清市 翁垟街道琳泉路23号
主营产品:
供应信息分类
联系人:朱雷勇
职 位 :总经理
地 址 :浙江 温州 乐清市 中国 浙江 乐清市 翁垟街道琳泉路23号
价格:¥15.90
价格:¥17.95
价格:¥1335.00
价格:¥1.00
价格:¥3500.00
价格:¥1.00
价格:面议
品牌:delixi/德力西
型号:TND2
类型:铁磁谐振式交流稳压器
加工定制:否
德力西电气 TND2-0.5KVA 指针式高精度全自动交流稳压器 0.5KW
稳压器是使输出电压稳定的设备。稳压器调压电路、控制电路、及伺服电机等组成。当输入电压或负载变化时,控制电路进行取样、比较、放大,然后驱动伺服电机转动,使调压器碳刷的位置改变,通过自动调整线圈匝数比,从而保持输出电压的稳定。&
本公司专业生产销售低压电气、工控电气辅料附件,依托上海销售总公司代理品牌的优势,浙江公司也同时销售者上海公司代理销售的品牌。(本公司有低压电气、工控电气行业数十年的实体销售经验,优势与经验更有助你的采购与产品质量的把控,今天的服务只为明天您更好的安全)
上海公司专业代理德力西电气(杭州变频器)、施耐德电气、正泰电器、台湾明纬、台达、西门子、ABB、上海人民、上海起凡电线、及其高低压成套电气。
本公司以重信用、守合同、保证产品质量为己任,以多品种经营特色和薄利多销的原则,赢得了广大客户的信任。
公司产品线:
低压电气:交流接触器、时间继电器、中间继电器、热过载继电器、电动机保护器、变频器、小型断路器、塑壳断路器、万能式断路器、漏电断路器、浪涌保护器、双电源开关、火灾监控单元、隔离开关、刀开关、指示灯、按钮、接近开关、光电开关、行程开关、电流电压表、互感器、单三相变压器、单三相大功率稳压器、单三相调压器、控制与保护开关CPS(KBO)、开关电源、防爆电器、
工控类:高品质绝缘子、银灰色阻燃行线槽、缠绕管、梅花管、接线端子排、铜接线端子、DIN35-75铝铁质导轨、大电流铜接头、防水接头、防水工业插座头、零地排等等上万种产品。
主营产品或服务:
主营行业:
经营模式:
注册资本:
公司成立日期:
公司所在地:
浙江 温州 乐清市 中国 浙江 乐清市 翁垟街道琳泉路23号
企业类型:
浙江 温州 乐清市 中国 浙江 乐清市 翁垟街道琳泉路23号
乐清市柳市品哲电器厂
价格:¥14.00
价格:¥14.00
价格:¥109.00
价格:¥36.40
价格:¥7.30
价格:¥183.00
价格:¥109.40
价格:¥8.44
价格:¥129.55
价格:¥1.00
价格:¥1.00
价格:¥1.00
价格:¥1.00
价格:¥1.00
日-5日中国国际展览中心(老馆)
日-18日中国进出口商品交易会展馆
日-6日中国国际展览中心(老馆)
日-12日中国进出口商品交易会展馆
日-23日上海光大会展中心
日-18日中国进出口商品交易会展馆
日-16日上海世博展览馆
日-15日上海新国际博览中心
日-29日上海新国际博览中心
日-28日上海新国际博览中心
日-28日上海新国际博览中心
日-17日国家会议中心
免责声明:
本商铺内所展现的德力西电气 TND2-0.5KVA 指针式高精度全自动交流稳压器 0.5KW信息及其他相关信息均由商铺所属企业自行提供,信息的真实性、准确性和合法性由商铺所属企业完全负责。中国供应商对此不承担任何保证责任。
友情提醒:
建议您在购买相关产品前务必确认供应商资质及产品质量,过低的价格有可能是虚假信息,请谨慎对待,谨防欺诈行为。
地址:浙江 温州 乐清市 中国 浙江 乐清市 翁垟街道琳泉路23号&&
按拼音检索:
技术支持:
价格:¥15.90
价格:¥15.90
价格:¥14.00
价格:¥15.90
价格:¥15.90
价格:¥14.00
价格:¥14.00
价格:¥2.00
价格:¥0.00
价格:¥0.00
价格:¥1.00
价格:¥10.00直流稳压电源_百度百科
关闭特色百科用户权威合作手机百科 收藏 查看&直流稳压电源
本词条由 提供专业内容并参与编辑
能为负载提供稳定直流的电子装置。直流稳压电源的大都是交流电源,当交流供电电源的或负载电阻变化时,的直流输出电压都会保持稳定。 直流稳压电源随着电子设备向高精度、高稳定性和高可靠性的方向发展,对电子设备的供电电源提出了高的要求。分&&&&类线性、开关型
当今社会人们极大的享受着电子设备带来的便利,但是任何电子设备都有一个共同的电路--电源电路。大到超级计算机、小到袖珍计算器,所有的电子设备都必须在电源电路的支持下才能正常工作。当然这些电源电路的样式、复杂程度千差万别。超级计算机的电源电路本身就是一套复杂的。通过这套电源系统,超级计算机各部分都能够得到持续稳定、符合各种复杂规范的供应。袖珍计算器则是简单多的电池电源电路。不过你可不要小看了这个电池电源电路,比较新型的电路完全具备电池能量提醒、掉电保护等高级功能。可以说电源电路是一切电子设备的,没有电源电路就不会有如此种类繁多的电子设备。
由于电子技术的特性,电子设备对电源电路的要求就是能够提供持续稳定、满足负载要求的电能,而且通常情况下都要求提供稳定的直流电能。提供这种稳定的直流电能的电源就是直流稳压电源。直流稳压电源在中占有十分重要的地位。另外,很多初学阶段首先遇到的就是要解决电源问题,否则电路无法工作、电子制作无法进行,学习就无从谈起。稳压电源的分类方法繁多,按输出电源的类型分有直流稳压电源和交流稳压电源;按稳压电路与负载直流稳压电源的连接方式分有串联稳压电源和并联稳压电源;按调整管的工作状态分有线性稳压电源和开关稳压电源;按电路类型分有简单稳压电源和反馈型稳压电源,等等。如此繁多的分类方式往往让初学者摸不着头脑,不知道从哪里入手。其实应该说这些看似繁多的分类方法之间有着一定的层次关系,只要理清了这个层次自然可以分清楚电源的种类了。
既然我们谈的是稳压电源的分类,那么首先就应该清楚电源的输出是什么,是输出直流电还是输出交流电。这样第一个层次就出来了,首先应该根据电源的输出类型来分类。接下来的分类就要麻烦一些,是按稳压电路与负载的连接方式分类还是按调整管的工作状态分类呢?其实了解一下我们身边的电子设备会发现实际应用中稳压电源有两个区别很大的种类,一种是各种比较简单的电子设备中广泛使用的线性稳压电源,比如收音机、小型音响等;一种是各种复杂电子设备中广泛使用的开关稳压电源,比如大屏幕彩电、微型计算机等。这样看来第二个层次的分类我们可以根据调整管的工作状态来分类。接下来的第三个层次的分类就是根据稳压电路与负载的连接方式来分类。再往下面细分由于各种不同的电路特性相差太大,就不好一概而论,应该根据每一个具体类别的特性进行分类区分了。
直流稳压电源可以分类两类,包括线性和开关型。线性稳定电源有一个共同的特点就是它的功率器件调整管工作在线性区,靠调整管之间的来稳定输出。由于调整管静态损耗大,需要安装一个很大的散热器给它散热。而且由于工作在工频(50Hz)上,所以重量较大。
该类电源优点是稳定性高,纹波小,可靠性高,易做成多路,输出连续可调的成品。缺点是体积大、较笨重、效率相对较低。这类稳定电源又有很多种,从输出性质可分为稳压电源和及集稳压、稳流于一身的稳压稳流(双稳)电源。从输出值来看可分定点输出电源、波段开关调整式和电位器连续可调式几种。从输出指示上可分指针指示型和数字显示式型等等。[1]与线性稳压电源不同的一类稳电源就是开关型直流稳压电源,它的电路型式主要有单端反激式,单端正激式、半桥式、推挽式和全桥式。它和的根本区别在于它变压器不工作在工频而是工作在几十千赫兹到几兆赫兹。功能管不是工作在饱和及截止区即开关状态;开关电源因此而得名。[1]
可调直流稳压电源(开关型)开关电源的优点是体积小,重量轻,稳定可靠;缺点相对于线性电源来说纹波较大(一般≤1%VO(P-P),好的可做到十几mV(P-P)或更小)。它的功率可自几瓦-几千瓦均有产品。价位为3元-十几万元/瓦,下面就一般习惯分类介绍几种开关电源:
(1)AC/DC
该类电源也称一次电源,它自电网取得能量,经过高压整流滤波得到一个直流高压,供DC/DC变换器在输出端获得一个或几个稳定的直流电压,功率从几瓦-几千瓦均有产品,用于不同场合。属此类产品的规格型号繁多,据用户需要而定通信电源中的一次电源(AC220输入,DC48V或24V输出)也属此类。
(2)DC/DC
在通信系统中也称,它是由一次电源或直流电池组提供一个直流输入电压,经DC/DC变换以后在输出端获一个或几个直流电压。
(3)通信电源
通信电源其实质上就是DC/DC变换器式电源,只是它一般以直流-48V或-24V供电,并用后备电池作DC供电的备份,将DC的供电电压变换成电路的工作电压,一般它又分中央供电、分层供电和单板供电三种,以后者可靠性最高。
(4)电台电源
电台电源输入AC220V/110V,输出DC13.8V,功率由所供电台功率而定,几安几百安均有产品。为防止AC电网断电影响电台工作,而需要有电池组作为备份,所以此类电源除输出一个13.8V直流电压外,还具有对电池充电自动转换功能。
(5)模块电源
随着科学技术飞速发展,对电源可靠性、容量/体积比要求越来越高,越来越显示其优越性,它工作频率高、体积小、可靠性高,便于安装和组合扩容,所以越来越被广泛采用。国内虽有相应模块生产,但因生产工艺未能赶上国际水平,故障率较高。
虽然成本较高,但从产品的漫长的应用的整体成本来看,特别是因系统故障而导致的高昂的维修成本及商誉损失来看,选用该电源模块还是合算合算的,在此还值得一提的是罗氏变换器电路,它的突出优点是电路结构简单,效率高和输出电压、电流的纹波值接近于零。
(6)特种电源
高电压电源、大电流电源、400Hz输入的AC/DC电源等,可归于此类,可根据特殊需要选用。开关电源的价位一般在2-8元/瓦特殊小功率和大功率电源价格稍高,可达11-13元/瓦。1.输出值能够在额定输出电压值以下任意设定和正常工作。
2.输出的稳流值能在额定输出电流值以下任意设定和正常工作。
3.直流稳压电源的稳压与稳流状态能够自动转换并有相应的状态指示。
4.对于输出的电压值和电流值要求精确的显示和识别。
5.对于输出电压值和电流值有精准要求的直流稳压电源,一般要用多圈器和电压电流微调电位器,或者直接数字输入。
6.要有完善的。直流稳压电源在输出端发生短路及异常工作状态时不应损坏,在异常情况消除后能立即正常工作。直流稳压电源的技术指标可以分为两大类:一类是指标,反映直流稳压电源的特性,如输入直流稳压电源电压、输出电压、输出电流、输出电压调节范围;另一类是质量指标,反映直流稳压电源的优劣,包括稳定度、等效内阻(输出)、纹波电压及温度系数等。(1)输出电压范围
符合直流稳压电源工作条件情况下,能够正常工作的输出电压范围。该指标的上限是由最大输入电压和最小输入-输出电压差所规定,而其下限由直流稳压电源内部的值决定。
(2)最大输入-输出电压差
该指标表征在保证直流稳压电源正常工作条件下,所允许的最大输入-输出之间的电压差值,其值主要取决于直流稳压电源内部调整晶体管的耐压指标。
(3)最小输入-输出电压差
该指标表征在保证直流稳压电源正常工作条件下,所需的最小输入-输出之间的电压差值。
(4)输出范围
输出电流范围又称为电流范围,在这一电流范围内,直流稳压电源应能保证符合指标所给出的指标。(1)SV
是表征直流稳压电源稳压性能的优劣的重要指标,又称为稳压系数或稳定系数,它表征当输入电压VI变化时直流稳压电源输出电压VO稳定的程度,通常以单位输出电压下的输入和输出电压的相对变化的百分比表示。
(2)电流调整率SI
电流调整率是反映直流稳压电源负载能力的一项主要自指标,又称为电流稳定系数。它表征当输入电压不变时,直流稳压电源对由于负载电流(输出电流)变化而引起的输出电压的波动的抑制能力,在规定的负载电流变化的条件下,通常以单位输出电压下的输出电压变化值的百分比来表示直流稳压电源的电流调整率。
(3)纹波抑制比SR
纹波抑制比反映了直流稳压电源对输入端引入的市电电压的抑制能力,当直流稳压电源输入和输出条直流稳压电源件保持不变时,纹波抑制比常以输入纹波电压峰-峰值与输出纹波电压峰-峰值之比表示,一般用分贝数表示,但是有时也可以用百分数表示,或直接用两者的比值表示。
(4)温度稳定性K
集成直流稳压电源的温度稳定性是以在所规定的直流稳压电源工作温度Ti最大变化范围内(Tmin≤Ti≤Tmax)直流稳压电源输出电压的相对变化的百分比值。(1)最大输入电压
是保证直流稳压电源安全工作的最大输入电压。
(2)最大输出电流
是保证安全工作所允许的最大输出电流。数字直流稳压稳流电源内部采用IGBT模块调整模式,具体高效能、高精度、高稳定性等特性,主要应用于科研单位、实验室和电子产线等需要高效电源测试时使用。
直流稳压电源
1、输出显示:输出电压电流LED显示
2、采用19英寸标准化尺寸,可组合放置于各种工作台面及机架;
3、体积小、重量轻、节能高效
4、恒压恒流:输出恒压恒流自动切换,电压电流值连续线性调节;
5、保护功能:过压保护、过流保护、过温保护、欠压保护、过载保护;
6、短路特性:本机工作状态下长时间短路;
7、外接补偿:本机可选外接补偿,可降低因输出回路较长等造成的压降;
8、过压保护值:输出过压佑护值可调,保护后切断输出并锁定,重新开机恢复;
9、通信功能:可选特殊数据接口,与其他设备数据连接控制,或与PLC连接。(选配)
10、外控功能:可选0-5V或4-20mA信号控制电源的输出电压和电流;(选配)
11、定时功能:可选定时开关机功能;(选配)直流稳压电源引可广泛应用于国防、科研、大专院校、实验室、工矿企业、电解、、直流电机、充电设备等。(1)可用于各种电子设备老化,如PCB板老化,家电老化,各类IT产品老化,CCFL老化,灯管老化 (2)适用于需要自动定时通、断电,自动记周期数的电子元件的老化、测试 (3)电解电容器老练 (4)电阻器,,马达等测试老练 (5)整机老练;电子元器件性能测试,例行试验。国内直流稳压电源生产厂家众多,比较有代表的著名品牌有: 万瑞达、艾诺、能华、台湾固纬、科泰、艾德克斯、恩泰等。WYJ系列直流稳压电源是高稳定度的稳压稳流自动转换的精密直流电源、输出电压在额定范围内连续可调。输出电流、电压显示分别有数显,液晶显示,指针式。电源形式有单路、双路和三路三种以上。双路输出都可设计串联或并联,输出具有良好的、过载、过压、短路等保护措施,安全性极对可靠。广泛应用于邮电、科研、军事、医院、工厂、学校等。
WYJ直流稳压稳流电源三相整流变压器的设计包括:一、二次绕组的联结方式,二次侧电压的计算,一、二次侧电流的计算,容量的计算与确定,结构形式的选择等环节。其中一、二次绕组的联结方式及二次侧电压的确定是我们重点分析的内容。本文以某一步进电机驱动器的3个直流电源设计为例进行详细介绍,原理图如图1。[2]
步进电机驱动器直流电源设计的原理图
图1 步进电机驱动器直流电源设计的原理图
1、二次侧电压的确定
二次电压不仅与负载电压(即要设计的直流稳压电源电压)和整流电路有关,而且与稳压器件有关。对于要求高的选桥式整流电路,用电容滤波稳压和稳压器稳压,对于要求低的则可以不稳压或用电容稳压。如在图1中,+7V低压驱动,主要是用来锁相,其电流小、电压低,电压波动对驱动电源的工作状态影响不大,不用稳压;+110V用以高压驱动,断续式供电且频率很高,大的电流和电流变化率会产生很高过电压,因此要用电解电容稳压,电阻限流;+12V用于计算机和集成电路的电源,电流小、电压低,但要求电压稳定、纹波系数小,因此用电容和三端稳压器两级稳压。对于不同的稳压手段,二次电压有着不同的确定方法,理论上这3个电压的计算式相同,即U2=Ud/2.34 或UL=Ud/1.35,计算的3个二次电压分别为:5.2V、81.5V和8.9V,但这样计算的结果在实际中不和适,因此,有些量必须用工程估算式来确定,如三相不可逆整流系统一般用公式UL=(0.9~1.0)·Ud估算,如果直流侧用电解电容滤波时、输出平均值会升高,一般用公式UL=Ud/2 1/2 估算;如果直流侧用电容和三端稳压器稳压,为了扩大稳压范围,Ud一般应升高3~6V,再用公式UL=(0.9~1.0)·Ud估算。这样确定的3个二次电压分别为:UL7=0.9×7=6.3V,UL110=110/2 1/2 =78V,UL12=16×0.9=14.4V。
2、一、二次例电流计算及容量确定
二次电流要根据负载电流的大小和整流电路来定,在图1中采用三相桥式整流电路,用式I2=(2/3) 1/2 Id求出3个二次电流有效值分别为:3.26A、6.5A、1.63A,就得到3个二次电压和电流。根据变压器一、二次功率近似相等原则,可求得一次电流I1=1.45A,变压器的容量为S=953VA,按1.5kVA选变压器型号。
3、一、二次例绕组联结方式的确定
三相交压器绕组可以根据需要接成星形或Δ形。三相整流电路一般用于大功率(即负载功率在4kW以上)整流,变压器通常接成Y/Δ、 Δ/Y 2种。Δ/Y接法可使电源线电流有2个阶梯,更接近正弦波,谐波影响小,可控整流电路用得比较多;Y/Δ接法可以提供单相交流电源,减小二次绕组电流,一般用于大功率二极管整流电路;对于小功率三相变压器有时也接成Y/Y型,虽然这种接法会给电网引入谐波.但毕竟其功率小,影响也较小。总之,选的时候既要考虑对电网的影响,又要尽量减小绕组电流,降低绕组绝缘等级。在图1中,7V和12V电流比较小,电压低,选星形接法;110V电流大,电压不是太高,选Δ形接法,可大大降低绕组中电流,减小绕组线径,延长使用寿命;一次绕组的线电压虽然高(380V),但变压器容量只有2kW,一次电流为1.45A,所以选星形接法,可降低绕组的电压和绕组的绝缘等。三相整流电路通常有三相半波整流电路和三相桥式整流电路,由于三相桥式整流电路输出平均电压高,电压脉动小,品质因数高,因此多使用桥式整流电路。桥臂上二极管型号的选择主要是由它的额定电压和额定电流决定,额定电流和电压则由负载平均电流和电压决定,其计算式为:ID=(1/3) 1/2 ·Id,ID(AV)= ID /1.57,UDn=(1~2) 2 1/2 ·U2,由ID(AV)和UDn查二极管手册就可确定整流管的型号。1、滤波电路及器件选择
整流滤波电路通常有电容、电感和RC等滤波电路。电感滤波是利用电感对脉动电流产生反电动势,阻碍电流变化来实现的,电感越大,滤波效果越好。它一般用于负载电流大、对滤波要求不高的场台。RC滤波电路是电阻和电容连接使用的滤波电路,由于电阻会降低一部分直流电压,直流输出电压会减小,因此只适用于小电流电路。电容滤波是利用电容的充放电作用使整流输出电压变得平稳,而且电压幅值升高,滤波效果好,适于各种整流电路。滤波电容的选择主要是种类和容量、耐压值的确定。常用的整流滤波电容有铝电解、钽电解、涤纶、独石电容等。铝电解电容漏电流大,耐压和工作温度(最高+70℃)较低,但容量大;钽电解电容漏电流小,耐压和工作温度比铝电解电容都高,一般用于要求较高的地方;涤纶电容绝缘电阻大,损耗小,工作温度(最高+55℃)低,容量小,但耐压高;独石电容体积可以做得很小,耐压也可以做得很高,化学性能和热性能比较稳定,但容量小。一般当整流输出电流大时,必须用电解电容滤波稳压;输出电流小时,用一般电容或电解电容滤波都可以,如果对直流输出电压有纹波系数要求或者为了防止高频噪音,用电解电容和小容量无极性电容并联使用效果较好:小容量电容可滤掉脉动直流中的高次谐波, 电解电容滤掉大幅值的低频成分,稳压范围宽、效果好。整流滤波电路对电容器的容量和耐压值要求不是太高,一般根据输出电流大小估算电容器的容量,输出电流大,容量就大;电流小,容量就小。但是,容量太大会降低输出电压值,太小则会导致电压脉动大、不稳定。容量确定可参考表1,耐压值一般取所接电路工作电压的1.5~2倍。
步进电机驱动器直流电源设计的原理图
2、稳压电路及器件选择
稳压电路有分立元件稳压电路和集成稳压电路2种,其中集成稳压电路主要用于低电压小电流的整流电路,具有体积小,电路简单,稳压精度高,使用调试方便等特点。选择时首先要确定系列,是正电源还是负电源,是可调的还是固定的,其次是根据它的额定电压和额定电流选择具体型号;同时,稳压器在接入整流电路时要适当加一些保护元件,如在I/O端接二极管可防止输入端短路,在输入端和地之间接一小电容,可限制输入电压幅值等。
直流电源的设计理论上比较简单,但在具体的工程设计中还需要进一步分析、研究、实践和总结。
新手上路我有疑问投诉建议参考资料 查看指针_百度百科
关闭特色百科用户权威合作手机百科
收藏 查看&指针[zhǐ zhēn]
在中,指针(Pointer)是中的一个对象,利用,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的。[1]在中,指针有效的取代了在低级语言,如与机器码,直接使用通用的地方,但它可能只适用于合法地址之中。指针参考了存储器中某个地址,通过被称为反参考指针的动作,可以取出在那个地址中存储的值。作个,假设将电脑存储器当成一本书,一张内容记录了某个页码加上行号的,可以被当成是一个指向特定页面的指针;根据便利粘贴面的页码与行号,翻到那个页面,把那个页面的那一行文字读出来,就相当于是对这个指针进行反参考的动作。[2]在中指针是一个用来指示一个内存地址的计算机语言的或中央处理器(CPU)中(Register)【用来指向该内存地址所对应的变量或数组】。指针一般出现在比较近的语言,如汇编语言或C语言。的语言如Java一般避免用指针。指针一般指向一个或一个。在使用一个指针时,一个既可以直接使用这个指针所储存的,又可以使用这个地址里储存的的值。另外,指针也指钟表中用来指示对应时间的部件。外文名pointer适用范围计算机作&&&&用通过它找到以它为地址的内存单元
使用指针来读取数据,在重复性操作的状况下,可以明显改善程序,例如在遍历字符串,查取表格,控制表格及树状结构上。对指针进行复制,之后再解引用指针以取出数据,无论在时间或空间上,都比直接复制及访问数据本身来的经济快速。[2]
指针的机制比较简单,其功能可以被集中重新实现成更抽象化的(reference)数据形别。许多编程语言中都支持某种形式的指针,最著名的是,但是有些编程语言对指针的运用采取比较严格的限制,如一般避免用指针,改为使用。[2]
有两种含义,一是作为数据类型,二是作为实体。[2]
指针作为实体,是一个用来保存一个地址的中的。指针一般出现在比较底层的程序设计语言中,如。高层的如一般避免用指针,而是引用。[2]
指针作为数据类型,可以从一个函数类型、一个对象类型或者一个不完备类型中导出。从中导出的数据类型称之为被引用类型(referenced type)。指针类型描述了一种对象,其值为对被引用类型的实体的引用。[2]
C++标准中规定,“指针”概念不适用于(不包含指向静态成员的指针)。C++标准规定,指针分为两类:[2]
object pointer type:指向void或对象类型,表示对象在内存中的字节地址或空指针。[2]
function pointer type:指代一个函数[2]
指针与C语言
大家都认为,之所以,以及其自由性,很大部分体现在其灵活的指针运用上。因此,说指针是的灵魂,一点都不为过。同时,这种说法也让很多人产生误解,似乎只有的指针才能算指针。不支持指针,在此不论。其实,语言本身也是支持指针的。从最初的发展至今的,可以说在指针运用上,丝毫不会逊色于的指针。
内存分配表
计算机中的内存都是的,就像你家的地址一样。在或者运行的时候,系统(可以不关心具体是什么,可能是,也可能是)开辟了一张表。每遇到一次声明(包括的传入的声明)都会开辟一个内存空间,并在表中增加一行纪录。记载着一些对应关系。(如图1所示)图1
Declaration | ID Name Address Length
int nP; | 1 nP 2000 2B
char myC | 2 myChar 2002 1B
int *myP | 3 myPointer 2003 2B
char *myPointer2; | 4 myPointer2 2005 2B
指针,是一个(unsigned int),它是一个以当前系统寻址范围为取值范围的整数。32位系统下寻址能力()是4G Bytes(0~2^32-1)表示长度为32bits(也就是4Bytes), unsigned int类型也正好如此取值。
例证(一)
例证就是1得到的答案和程序2的答案一致。(不同机器可能需要调整一下pT的取值)
#include &stdio.h&
char t='h';
putchar(*pT);
#include &stdio.h&
char t='h';
pT=(char *)1245048;
putchar(*pT);
加上(char *)是因为毕竟int 和char *不是一回事,需要,否则会有个警告。因为char *声明过的类型,一次访问1个sizeof(char)长度,double *声明过的类型,一次访问1个sizeof(double)长度。
在汇编里int 类型和指针就是一回事了。因为不论是整数还是指针,执行自增的时候,都是其值加一。如果上文声明char *pT;,汇编语言中pT自增之后值为1245049,C语言中pT++之后pT值为1245049。如果32 位系统中,上文声明int *pT;,汇编语言中pT 自增之后值为1245049,可是C 语言中pT++之后pT值为1245052。
为什么DOS下面的Turbo C,和Windows下VC的int类型不一样长。因为DOS是16位的,Windows是32位的,可以预见,在Windows 中编译,上文声明int *pT;,pT++之后pT值为1245056。
例证(二)
对于复杂的结构,如C语言的(汇编语言对应为Record类型)按顺序分配空间。(如图2所示)
int a[20];
typedef struct st
在32 位系统下,内存里面做如下分配(单位:H,16 进制);(如图3所示)
这就说明了为什么sizeof(pst)=16而不是8。把的大小规定为结构体成员中大小最大的那个类型的整数倍。
至于pT的存储,可以依例推得。总长为160,此不赘述。
有个问题,如果执行pT++,答案是什么?是自增16,还是160?别忘了,pT 是,不能加减。
所以,我们就可以
typedef struct BinTree
struct BinTree *LeftC
struct BinTree *RightC
用一个整数,代表一棵树的结点。把它赋给某个结点的LeftChild/RightChild 值,就形成了上下级关系。只要无法找到一个,使得A-&LC/RC-&LC/RC...-&LC/RC==A,这就构成了一棵。反之就成了图。C中是按值传递的,传入在子函数中只是一个初值相等的副本,无法对传入参数作任何改动。但实际编程中,经常要改动传入的值。这一点我们可以用传入的地址而不是原参数本身,当对传入参数(地址)取(*)运算时,就可以直接在内存中修改,从而改动原想作为传入参数的。
编程参数值
#include &stdio.h&
void inc(int *val)
printf(&%d& , a);
在执行inc(&a);时,系统在内存分配表里增加了一行“inc 中的val”,其地址为新地址,值为&a。操作*val,即是在操作a 了。(*p)操作是这样一种运算,返回p 的值作为地址的那个空间的取值。(&p)则是这样一种运算,返回当时声明p 时开辟的地址。显然可以用对内存地址赋值。我们假设有这么两段内存地址空间,他们取值如下:(单位:H,16 进制)(如图4所示)图4
假设有这么一段代码:(假设开辟空间时p 被分配给了3001H、3002H 两个位置)
**p的值为多少?
**p=*(*(p))=*(*(2003H))=*(3000H)=0300H。
那么&&p、*(&p)和&(*p)又等于多少?
&&p=&(&(p))=&(3001H),此时出错了,3001H 是个常数怎么可能有地址呢?
*&p=*(&(p))=*(3001H)=2003H,也就是*&p=p。
&*p=&(*p)=&(3000H)=2003H,之前有人认为这个是不成立的,实际上&(3000H)是求存储3000H这个变量所在的内存地址,仍然是p的值。下面的代码是个很简单的例子:
#include&iostream&
using&namespace&
//环境vc6.0
int&main()
&&&&int&*a;
&&&&a=(int*)5;
&&&&cout&&(unsigned&int)&*a&&
输出的结果为5两个地方要注意: 在声明的时候的*,只是表明“它是一个无符号整数,这个整数指向某个,一次访问sizeof(type)长度”。这点不要和(*)操作符混淆;
在C++声明的时候的&,只是表明“它是一个,这个引用声明时不开辟新空间,它在内存分配表加入新的一行,该行等于和调用时传入的对应内存地址”。
这点不要和(*)声明符,(&)操作符混淆。对于一棵树,我们通常用它的根节点地址来表示这棵树。这就是“擒贼先擒王”。找到了树的根,其每个都可以找到。但是有时候我们需要对树进行删除节点,增加节点操作,往往考虑到删除根节点,增加的节点取代原来的根节点作为新根节点的情况。为了修改根节点这个“整数”,我们需要退一步,使用这个“整数”的,也就是指向这个“整数”的指针。在声明时,我们用2 个*号,声明指向指针的指针。它的意思是“它是一个整数,这个整数指向某个内存地址,一次访问sizeof(int)长度,其值是一个整数,那个整数值指向某个内存地址,一次访问sizeof(BTree)长度。”。详见&&有关“树”的代码。由于存放的的地址,因此是指向指针变量的指针变量,或称二级指针变量。对指针进行初始化或赋值只能使用以下四种类型的值[3]:
1. 0 值常量表达式,例如,在编译时可获得 0 值的整型 const对象或字面值常量 0。
2. 类型匹配的对象的地址。
3. 另一对象末的下一地址。
4. 同类型的另一个有效指针。
把 int 型变量赋给指针是非法的,尽管此 int 型变量的值可能为 0。但允
许把数值 0 或在编译时可获得 0 值的 const 量赋给指针:
int zero = 0;
const int c_ival = 0;
int *pi = // error: pi initialized from int value of ival
pi =// error: pi assigned int value of zero
pi = c_// ok: c_ival is a const with compile-time value of 0
pi = 0;// ok: directly initialize to literal constant 0[3]
除了使用数值 0 或在编译时值为 0 的 const 量外,还可以使用 C++ 语言从 C 语言中继承下来的预处理器变量 NULL,该变量在 cstdlib头文件中定义,其值为 0。如果在代码中使用了这个预处理器变量,则编译时会自动被数值 0 替换。因此,把指针初始化为 NULL 等效于初始化为 0 值[3]:
// cstdlib #defines NULL to 0
int *pi = NULL; // ok: equivalent to int *pi = 0;[3]:就是一个由指针组成的数组,那个数组的各个元素都是指针,指向某个内存地址。 char *p[10];//p是一个
:数组名本身就是一个指针,指向数组的首地址。注意这是一个常数。
char (*p)[10]//p是一个
:本身是一个指针,指向一个函数入口地址,通过该指针可调用其指向的函数,使用函数指针可实现。
#include &stdio.h&
void inc(int *val)
void (*fun)(int *);
fun=//fun是一个
(*fun)(&a);
printf(&%d& , a);
:本身是一个函数,其返回值是一个指针。
void * fun(void);// fun是一个指针函数
这个问题大家应该都碰到过,指针数组和数组指针,刚开始看时觉得还是能看懂,但是过些时又搞混了,最后发现还是没有真正理解。
下面就简单说说这两个概念:一:指针数组,顾名思义,就是说的首先是一个数组吧,然后数组的元素是指针而已。说明形式为:type *pointer_array[constant1][constant2]...[constantn]; 例如:int *pai[3]; 由于‘*’是自右向左结合,因此从右向左看,首先看到[4]说明是一个数组,是一个包含4个元素的数组,然后看到‘*’,显然是指针类型,由此可以看出数组中存放的是指针而不是一般的类型。同理,char *pac[2][3]是包含有6个元素,每一个元素都是一个字符型指针。再来说说他们的初始化: int *pai[3];既然是一个包含4个整形指针的数组那么其对应的将是一个二维整形数组,因为一个整形指针对应一个一维整形数组。那我就用一个二维整形数组来初始化它,事实上一般也都是这么做的,这里有一个二维数组,int arr[3][2]={{1,2},{3,4},{5,6}},一个三行两列的整形数组,注意这里的行必须和你的指针数组的维数一致,否则是不允许的,不信你可以试试。这个初始化有很多种选择,以下只列举常见的两种:第一种也是很好理解的: for(int i=0;i&3;i++) pai[i]=arr[i]; 显然arr[i]是每一行的首地址,相当于一个一维数组的数组名,如是把它送给一个整形指针pai[i]是理所当然的了。
第二种方法:在说明数组指针时就初始化:int (*ap)[2]={{1,2},{3,4},{5,6}};
注意:不能将二维数组的数组名赋给指针数组的数组名,pai=arr(错),因为两者的类型不一致,二维数组名的类型是指向int[][]型的指针,而指针数组的的数组名是指向int *[]类型的指针。
在c/c++语言中,指针数组最常用的场合就是说明一个字符串数组。即说明一个数组,它的每个元素都是一个字符串。
二:数组指针:指向一个数组的指针。说明形式为:type (*pointer_array)[constant1][constant2]...[constantn]; 注意这里的圆括号是必须就将这是由于方括号[],较指针说明符“*”的优先级高,若无此圆括号,编译器将把上述说明解释成成了一个数组指针。例如:int (*ap)[2]; 这样就说明了一个指向包含有2个元素的整形数组的数组指针,听起来确实有点别扭。不过仔细分析应该还是能理解的,就是说ap是一个指针,而它指向的对象是一个指针,注意不要将它和一个指向一个整形变量的指针搞混了。同样以一个二维数组来说明其初始化问题, int arr[3][2]={{1,2},{3,4},{5,6}};注意这里的列数必须和数组指针所指的数组的列数相同。第一种方法: ap= 为什么这里能这样将二维数组名送给ap呢,你可以这样理解,二维数组不就可以看成是一维数组的数组吗,而一个数组指针它指向的内容就是一个一维数组,那么你就可以把这个数组指针当做是一个数组名,只不过这个数组里的元素不是像int,char之类型的,而是一个数组,这样你就可以把它和二维数组的数组名联系在一起了。
第二种方法: ap=&arr[0]; 这里arr[0]其实就是一维数组的数组名,将它的地址给ap是很自然的,因为ap本来就是指向一个一维数组的。注意这里不能这样初始化:int (*a)[2]={{1,2},{3,4},{5,6}};大家可以想想为什么。当然他们也可以动态赋值,由于篇幅就不探讨了。[4]C++编程中指针与引用的区别
一、指针和引用的区别
(1)引用总是指向一个对象,没有所谓的 null reference .所有当有可能指向一个对象也有可能不指向对象则必须使用 指针.
由于C++ 要求 reference 总是指向一个对象所以 reference要求有初值.
String & rs = string1;
由于没有所谓的 null reference 所以在使用前不需要进行测试其是否有值,而使用指针则需要其的有效性.
(2)指针可以被重新赋值而reference则总是指向最初或地的对象.
(3)必须使用reference的场合. Operator[] 操作符 由于该操作符很特别地必须返回 [能够被当做assignment 赋值对象] 的东西,所以需要给他返回一个 reference.
(4)其实引用在的参数中使用很经常.
void Get***(const int& a) //这样使用了引用又可以保证不修改被引用的值
★ 相同点:
1. 都是地址的概念;
指针指向一块内存,它的内容是所指内存的地址;引用是某块的别名。
1. 指针是一个实体,而引用仅是个别名;
2. 引用使用时无需(*),指针需要解引用;
3. 引用只能在定义时被初始化一次,之后不可变;指针可变;
引用“从一而终”
4. 引用没有 const,指针有 const,const 的指针不可变;
5. 引用不能为空,指针可以为空;
6. “sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身(所指向的变量或对象的地址)的大小;
typeid(T) == typeid(T&) 恒为真,sizeof(T) == sizeof(T&) 恒为真,
但是当引用作为成员时,其占用空间与指针相同(没找到标准的规定)。
7. 指针和引用的自增(++)运算意义不一样;[5]
二、C++中指针传递与引用传递(进一步整理)
从概念上讲。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的的改变。
而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个周期中是不能被改变的(自始至终只能依附于同一个变量)。
在C++中,指针和引用经常用于函数的参数传递,然而,指针传递参数和引用传递参数是有本质上的不同的:
指针传递参数本质上是值传递的方式,它所传递的是一个地址值。值传递过程中,被调函数的形式参数作为被调函数的局部变量处理,即在栈中开辟了内存空间以存放由主调函数放进来的实参的值,从而成为了实参的一个副本。值传递的特点是被调函数对形式参数的任何操作都是作为局部变量进行,不会影响主调函数的实参变量的值。(这里是在说实参指针本身的地址值不会变)
而在引用传递过程中,被调函数的形式参数虽然也作为局部变量在栈中开辟了内存空间,但是这时存放的是由主调函数放进来的实参变量的地址。被调函数对形参的任何操作都被处理成间接寻址,即通过栈中存放的地址访问主调函数中的实参变量。正因为如此,被调函数对形参做的任何操作都影响了主调函数中的实参变量。
引用传递和指针传递是不同的,虽然它们都是在被调函数栈空间上的一个局部变量,但是任何对于引用参数的处理都会通过一个间接寻址的方式操作到主调函数中的相关变量。而对于指针传递的参数,如果改变被调函数中的指针地址,它将影响不到主调函数的相关变量。如果想通过指针参数传递来改变主调函数中的相关变量,那就得使用指向指针的指针,或者指针引用。
为了进一步加深大家对指针和引用的区别,下面我从编译的角度来阐述它们之间的区别:
程序在编译时分别将指针和引用添加到符号表上,符号表上记录的是变量名及变量所对应地址。指针变量在符号表上对应的地址值为指针变量的地址值,而引用在符号表上对应的地址值为引用对象的地址值。符号表生成后就不会再改,因此指针可以改变其指向的对象(指针变量中的值可以改),而引用对象则不能修改。
最后,总结一下指针和引用的相同点和不同点:
★相同点:
●都是的概念;
指针指向一块内存,它的内容是所指内存的地址;而引用则是某块内存的别名。
★不同点:
●指针是一个实体,而引用仅是个别名;
●引用只能在定义时被初始化一次,之后不可变;指针可变;引用“从一而终”,指针可以“见异思迁”;
●引用没有const,指针有const,const的指针不可变;(具体指没有int& const a这种形式,而const int& a是有 的, 前者指引用本身即别名不可以改变,这是当然的,所以不需要这种形式,后者指引用所指的值不可以改变)
●引用不能为空,指针可以为空;
●“sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身的大小;
●指针和引用的自增(++)运算意义不一样;
●引用是类型安全的,而指针不是(引用比指针多了类型检查[6]指针可以用来有效地表示复杂的,可以用于并达到更加灵活使用函数的目的.使C语言的设计具有灵活、实用、高效的特点。
新手上路我有疑问投诉建议参考资料 查看

我要回帖

更多关于 稳压器多少钱一个 的文章

 

随机推荐