61阅读

直销与传销区别是什么-项目融资与传统的公司融资的主要区别是什么?

发布时间:2018-02-26 所属栏目:工程项目融资论文

一 : 项目融资与传统的公司融资的主要区别是什么?

首先我们来看一个融资方式的分类图:

通常情况下,企业的融资方式从来源上可以分为内源融资外源融资.内源融资主要是指通过的企业内部生产经营活动产生的现金流量来转化为企业的投资,即将留存收益和折旧作为企业扩大规模的资金进行投资的过程,内源融资不需要企业支付利息或者股息,成本比较低,并在股权结构不变的前提下,实现企业的融资目的。内源融资一般取决于企业的盈利能力和利润水平,具有低风险性、低成本性和自主性的特点,是促进企业不断发展壮大的重要因素,往往作为企业首选的融资方式,当内源融资获得的资金无法满足企业需求时,企业才会通过外源融资方式获得资金。外源融资主要是指从企业外部获得企业发展的资金,并转化为自身投资的过程,一般按产权关系可以将外源融资划分为权益融资和债务融资。其中权益融资又可以分为私募股权和公募股权,私募股权是指向特定的投资者发行股票而筹集资金的过程,公募股权是指向社会公众发行股票而筹集资金的过程,权益融资不需要到期还本付息,没有偿还资金的压力,一般被称为企业的永久性资本。债务融资又可分为银行贷款、公司债券、融资租赁、商业信用等,除靠企业间的商业信用进行的短期融资外,其他债务融资一般都要求企业定期还本付息,企业面临的压力较大,融资成本较高,而企业的财务风险也主要来源于债务融资%外源融资使企业筹得的资金远远高于内源融资,尤其是需要筹集大量资金的企业,单纯的内源融资无法筹集企业所需要的全部资金,往往还要采取外源融资的方式。

从总体上看,项目融资之所以这些年来发展得比较快,是由于它具有一些其它融资方式不可比拟的优势:无追索或有限追索;允许有较高的债务比例;享有税务优惠;可以实行多方位融资,等等。项目融资的主要弊端是增加了贷款人的风险,有较高的利息和费用负担。进入20世纪80年代中期以后,BOT项目融资方式得到了长足发展,这种融资方式得到了国际金融界的广泛重视,被认为是代表国际项目融资发展趋势的一种新型结构。进入90年代以来,融资证券化又成为金融市场的一种新趋势,在这种趋势的推动下,项目融资的一种全新操作模式—资本证券化在美国兴起并逐渐向全世界扩张。项目融资经过10年的发展,目前国际上出现的项目融资种类有贷款、发行债券、以“产品支付”为基础的项目融资方式、以“远期购买”为基础的项目融资方式、以“融资租赁”为基础的项目融资方式、BOT项目融资方式、ABS项目融资方式、TOT项目融资方式。

项目融资为解决代理人问题而生

代理人问题通常是由于公司内部不同部分有着不同的利益追求而产生的。为了解决这一问题,不同公司一般会选择适合自己的资本结构,使得内部利益追求均一化。

公司的股东想让公司的CEO做出利于公司市场价值增值的决策,这一情况实际上就是一个代理人问题,因为CEO作为公司的管理者并不总是考虑股东的利益。为了就解决这一问题,有人提出股东应该与管理者签订详尽的合同,合同中攘括了所有可能会出现的问题,并且要求管理者应该遵照合同条款去执行。这一方法听上去可行,实际上是难以实施的,且不说攘括所有情况的可能性有多大,股东监督管理者的执行情况就会耗费很大的成本。

解决这一问题的通常做法是让出一部分项目股权给经理人,起到一个正面激励作用,由于经理人的参股,那么其就会做出利于公司增值的决策。

资本结构的变化可以轻松解决代理人问题,这一变化将一部分公司风险轻松转移到经理人身上。但需注意的是,这一方法就像是一枚硬币的两面,一方面,它顺利解决了经理人效率低下的问题;但另一方面,由于经理人不能像一般股东那样多样化自己的投资组合,所以他承受的风险要比其他股东更大,那么他就会要求高的回报来补偿自己承受的高风险。

项目资本所有者之间会签订各种合同,这可以有效将项目的风险分散。正如上面经理人的例子,尽管这样做并不一定有利于股东的利益,但它确实可以解决让人头疼的“代理人问题”。

项目融资的参与除了贷款方和项目公司之外,还包括一个或多个项目发起人、承包商、项目原料供应者、产品的购买者和主事政府。

发起人和投资人.项目公司的控股权一般掌握在项目的发起人手中,发起人参与项目的建设和管理,而其他股东则通常与项目有商业上的联系,比如供应商和产品的采购商或者是项目的直接投资人。以PEC为例,它正在印度尼西亚建造发电站,其40%的股权掌握在EdisonMission Energy(梅森能源公司)手里,General Electric CapitalCorp.占12.5%的股份,Mitsui & Co. Ltd.(日本三井)占32.5%的股份,PT. Batu HitamPerkasa占15%的股份。这是一个典型的项目融资,日本三井作为主要股东则是项目的承包商;梅森公司通过它在当地的分公司管理这个项目的运作;通用电气则为项目提供汽轮发电机;印度尼西亚公司PT不参与公司的运营,但负责当地的政府公关。

贷款方.基础实施项目需要大量资金,资金中很大一部分是通过向银行、借贷机构或是债券市场借贷而来。在PEC的例子中,参股人投入了6亿8千万美元作为资本和次级债务,而其他18亿美元则是优先级债务。项目公司有时不会发行普通债务,它会和银行签订以未来产出作为抵押品的合同,银行预付给公司一笔资金,待到公司有产出后,银行拥有产出品的所有权,但公司需以合同价格购回产出品从而清偿银行债务。尽管银行贷款的期限一般不会超过12年,但是大部分基础设施愿意通过银行贷款而不是长期债券去获得资金,一些观察员认为公司之所以不能拿到长期债务资金,是因为债权人是风险规避者,但这些债权人也会持有大量的多样资产,所以这一猜测就站不住脚了。我们认为产生这一现象的原因是因为银行债权相对集中,所以它可以花很多精力去评估项目的可行性,并且一旦这一项目达不到预期效果,它也可以督促项目方重新商议。而相反,债券所有权相对分散,个人没有精力和实力去评估项目,也没有能力在项目进行中重新签订合同。所以项目公司很难通过长期债券融得资金。但是一些风险较低的项目可以通过债券融资,但即使这样,也需要保险公司或是国家机构进行担保。一旦项目完工并正常运作后,项目公司通常会进行债券融资以偿还银行债务。

政府.政府在项目中通常扮演规则制定者的角色,项目的发起和建设需通过政府的允许。在许多情况下,项目资产的所有权一直在项目公司的手中,这是一种“build-own-operate”projects,而有一些项目,在特许经营期到期后,政府收回该项目的所有权,这是一种“build-operate-transfer”projects。

承包商.承包商通常会持有项目公司少部分的股份

供应商和购买方.当项目完工并正常运行时,它的供应商提供原材料,购买方购买产品。一个项目的购买方可以是众多终端消费者,也可以是一个行业或是一家大的集团公司。

合同的拟定

尽管项目的参与者由来已久,但项目的确是一个新生事物,其中一个不同之处就是参与者之间的合同和资金安排,甚至在资金还没有眉目之前,合同就已经开始拟定了。在合同的拟定过程中,项目需要承受的任何风险都需要得到专业的评估和认识,没有人会平白无故的去接受自己无法预知的风险,并且项目融资一般不用于风险过大的项目,例如技术复杂并且远不成熟的项目

下面是几种通过合同安排分散风险的方式:

■项目发起人需要承受项目从建设到正常运行过程的风险,这一情形反映在他签订的facilitymanagementcontract中,这份合同包括项目按时完工,正常运行等要求。项目发起人有时要与银行签订“working capitalmaintenance” agreement or a “cashdeficiency”agreement,这些合同确保项目早期资金的充足。

■项目的贷款方除了要求他们出借的资金安全之外,也希望这笔钱能用到项目的建设上去,而不是其他方面。一旦有突发情况出现,如费用严重超支,他们可以对项目发起人进行追索。

■项目的承包商需要签订一项承包合同,合同内容包括具体的价目和工期,如果未达预期目标,会有相应的处罚条款,所以承包商需缴纳一定的履约保证金。

■项目的供应商会与项目公司签订一些合同,其需保证不会索取垄断价格,供应需充足且及时,否则,需相应赔偿。

■当只有少量的采购者时,项目公司会和项目产品的采购者签订长期供给合同从而将一部分风险转移到采购者身上,除此之外,来料加工合同也能起到同样的效果,例如菲律宾Navotas项目,项目公司只是将电能需求者送来的能源转化成电能,收取部分加工费,至于电能如何销售,它是不在意的。正因为如此,所以采购方需要谨慎的选择自己的产品需求数量。

■当产品有大量的需求者时,签订长期供应合同是不现实的。例如收费公路,这种项目容易受到政策和其他运输方式影响,所以其很难向私人融到资金。

■政府还需要为一些项目建立一些配套设施,如高速公路、变电所等等,如果配套设施跟不上,对项目的影响程度有时是无法估量的。

叙述了这么多,我们已经可以知道,项目各个参与者之间的合同安排可以分散项目的风险,且风险可以受到专业的评估和控制。如果仅仅是某一方承担所有的风险,那么就会出现“代理人问题”,效率低下,项目运行困难重重,最终走向失败。例如英国的监狱项目,政府试图让囚犯为项目公司的收入埋单,且自负盈亏,但由于囚犯不在公司可控范围内,这个项目迅速陷入经营困境。

现在转向融资安排,接下来需要回答一下问题:

■为什么项目需以一个独立公司来运营?

■为什么项目的管理者和承包商通常是这个项目的主要股东?

■为什么项目的负债率的如此之高?

■为什么项目的借款者选择无追索权?

项目公司制定各种合同的目的就是为了分散风险,提高效率,如承包方承担按时建设的风险,采购方承担了需求不足的风险等等。但这并不能解释为什么会出现大量独立运营的项目公司,因为政府完全可以直接为项目融资,然后签订各种合同来保证项目的顺利运作。看上去合理,实际上难以操作,在前面我们已经提到了,首先合同难以攘括所有可能出现的情况,再者难以监督合同的执行情况。所以根本的原因并不是合同,而是资本结构。比如,为什么管理者和承包方需要持有项目的一部分股权?这是因为股权的分配使得二者有激励去确保项目的正常运作。

项目公司有很高的负债率,如上文中提到的国际经融公司主导的项目,负债率高达60%。尽管通常认为项目很难借到资金,但是项目总是有很高的负债率,另外,借款方签合同的对象是项目公司,而不是项目发起人,所以借款方对发起人只有有限追索权。在完美的竞争资本市场,公司的市场价值与其负债率是无关的。同样的道理,项目公司如此高的负债率并不是因为借款是一种廉价的融资方式。在完美的竞争资本市场,公司的市场价值与其负债率是无关的。同样的道理,项目公司的市场价值与公司或者母公司的负债没有关系。为什么会这样,从资本结构可以引出很多解释,但没有哪一种可以解释所有的问题。其中很多解释都认为合同条款的不完整导致了这一现象,现在我们来看看一些主流观点:

破产成本.M&M的模型表明总的现金流与公司是否采用项目融资和破产成本为0无关。项目公司通常有很低的破产费用,这是因为它的资产通常是有形的,如果走破产程序,那么资产损失度会很小。项目发起人本身的破产费用通常是很高的,所以债务通常发生在借款人与项目公司之间,而不是项目发起人,当项目陷入困境进而破产时,它对发起人的影响是有限的。从而这可以解释为什么项目公司可以接到如此多无追索的债务资金。

税收.项目是在一个高税收的国家,而项目公司是在一个低税收的国家,那么发起人可以在高税收国家进行借款,充分利用税收差别来降低借款费用。但这并不能解释债务的无追索、也不能解释当税收无差别时债务的集中性。

目光短浅.这种观点通常认为放债人是目光短浅的,他们对债务的有限追索正是给项目发起人提供了免费的午餐,但这种观点很让人怀疑。

政治风险.由于合同的条款难以面面俱到,所以通常使得项目的管理者和承包方拥有项目的一部分股权。同样的,由于公司与政府订立许可合同的不完整性和复杂性,故通过这种融资安排以防政府作出对项目发展不利的动作。一种方法是使得政府也参股,而另外一种就是有限追索的借款,发起人想通过这种融资方式降低政府采取不利行动的风险。项目公司选择的借款对象是那些有垄断性质的国家银行或是跨国银行,例如世界银行、国际金融公司、亚洲发展银行等,这些银行在本国或是国际上有不可忽视的政治影响力,他们甚至可以影响政府的一些重大决策。另外,这些大银行通常持有项目的次级债务,而商业银行则持有优先级债务。大银行通过为项目提供债务担保来避免政治上的风险,例如,世界银行可以通过与政府签订一些协议来帮助项目公司融资,同样的,上一级政府对下一级政府也有这样的约束力,如印度的Dabhol项目,尽管新的州政府暂停了这个项目,但中央政府却能对州政府施加政治压力,迫使其恢复项目的建设。政治风险理论的确可以解释在发展中国家的项目融资结构,但在一个政治成熟的国家,这一理论受到了挑战。但很快有人认为在这样的国家中,虽然政治风险很低,但环境问题和诉讼问题仍然会带来较大的风险,所以大银行的借款仍然是有合理性的。尽管如此,其仍不能解释债务的集中性。

信息成本.由于信息成本的存在,贷款人仅与项目公司发生借贷关系可以使得贷款人只要评估和监督项目,而不是分散精力去关注发起人的行动。

净现金流.一个公司如果有大量的现金流而缺乏有价值的项目,那么它就会将资金投入到负净现值的项目中,而不是分给股东,但高负债确保公司需以一部分现金偿还到期债务,而不是无故浪费。高负债迫使公司尽可能盈利,并且不会将现金投入那些不可获利的项目中去。

现在又产生了一个问题,为什么不是母公司承担这些债务,而应该有项目公司自己来承担。毕竟母公司也会有同样的激励去盈利来偿还债务。这里有两种合理的解释,其一,母公司分不出精力来监督项目公司对债务资金的使用;其二,如果项目公司有多个母公司,由于母公司的目的不一样,那么对净现金流量的处理就会产生分歧,而如果是项目公司承担债务,那么净现金流的目的就会异常明确:偿还债务。

保险和对冲

除了之前提到合同可以分散项目的风险,而保险合同,如项目竣工保险、不可抗力的保险和政治风险的保险等可以进一步转移项目风险。尽管保险公司可以很专业的评估各种风险,但其并不能控制它们,所以保险公司带来的益处寥寥,相反它的不利之处却显而易见,各种保险会降低各方参与项目的效率。唯一可能解释为什么项目公司需要如此多的保险是因为项目需要大量的债务资金,而各种保险可以让债权人更加放心。

竞标

项目融资实际上是一个费时又费力的过程,它包括项目公司的建立、股东与债权人的合作、项目各方合同的签订以及各项文件的整理等。

政府一般会为项目的竞标造势,而竞标公司必然会考虑竞标的成本以及失败的风险。高昂的竞标成本使得竞标公司叫苦连连,这种成本甚至达到了私人领域项目的五倍,而这种成本对社会福利的增加毫无益处。一些潜在的竞标者通常有着相同的技术和承接项目的欲望,但为了防止竞标中出现串谋,政府总是会邀请一部分竞标者参与项目的竞标。

为什么项目融资如此具有吸引力,是因为这种方式充分利用私人资本为自己服务,节省了政府的开支,例如,英国政府将军方人员的住房卖给了一家私人公司,私人公司再将房屋出租给政府,这一举动为政府节省了大约5亿美元。从长期来看,如果私人公司经营不善,政府有责任为这些租金埋单。所以项目融资在这里是否适合还需从长远来看。

现在有人认为项目融资的费用并不一定会比政府出面融资成本要低,因为政府总是可以贷得低利率的资金,而项目公司却需要支付高昂的利息和投资的回报,如苏格兰水利工程项目,通过项目融资支出的成本要比政府融资高上50%,甚至世界银行也承认政府融资的费用更低。

但是,政府可以以低利率融得资金,并不意味着其整个项目资本费用就会低。因为项目的风险并不单单体现在借贷关系上,并且贷款人承受的风险本来就很低,项目的大部分风险是由股东承担的,股东要求的高回报会使得项目更加有效率的运转。而在政府融资中,由于没有回报要求,项目缺乏效率,尽管借贷利率很低,但有时仍会陷入债务违约的风险中。

管理权和所有权的部分结合有助于项目经理最大化项目运转效率,由于合同条款的复杂和不完整性使得我们不能盲目的依靠合同去约束管理者,而是使得管理者能从自己作出有利于项目的决策中分一杯羹,所以股权激励是一种很好的方式。

正是由于对政府效率以及政府融资的适宜性的考虑,所以私人部门通过项目融资的方式参与进来了。单纯的私有化有时并不如项目融资方式来的完美,首先私有化更加复杂,项目融资通常是一次性的,而私有化则不同,这个行业很多规章制度限制了它的发展;再者,一些行业,如医疗、教育领域,是不适合私有化的,但项目融资可以进入;第三,对于一个完全是由国外控制的产业,私有化也是行不通的,只有通过项目融资缓慢的争夺市场份额。

本文来源网易 前海融资租赁俱乐部转载以上文章,版权属于原作者。

二 : 密固达与福善美区别是什么

福善美是一种安全药(www.61k.com]品,疗效不仅好而且起作用快,疗效确切, 它具有传统西药治疗迅速的特点,同时比一般的西药毒副作用更小,治标且治本, 深受患者欢迎。那么,密固达与福善美区别是什么?

密固达为无色的澄明液体,是新一代的治疗骨质疏松的药物,在临床上主要用于治疗绝经后妇女的骨质疏松症,亦用于治疗Paget's病(变形性骨炎)。密固达对骨质疏松症的显著疗效,源自于其有效成分唑来膦酸,其主要作用于人体骨骼,通过对破骨细胞的抑制,从而抑制骨吸收。

而福善美是是第三代二膦酸盐,其治疗骨质疏松症的机理主要是作用于破骨细胞,它能特异性聚集在破骨细胞表面。破坏其细胞膜,使之不在具有吸收骨质的活性。从而抑制骨吸收。降低骨转换,并通过改变使破骨细胞活化的骨基质性质改变,从而抑制新生破骨细胞的形成。

阿仑膦酸钠片可以延缓骨量丢失提高骨密度,且优于口服活性钙组,从临床观察中还发现阿仑膦酸钠片对骨质疏松症的临床疼痛症状的缓解程度具有明显作用。临床上福善美主要用于治疗绝经后妇女的骨质疏松症,以预防腹部和脊柱骨折以及治疗男性骨质疏松医甲增加骨量。

密固达与福善美虽然在功效上有相似之处,但二者还是存在明显区别的,它们的区别主要在于成分不同,这也导致二者在功效上的一些差异。福善美必须在每天第一次进食、喝饮料或应用其它药物治疗之前的至少半小时,用白水送服,因为其它饮料(包括矿泉水)、食物和一些药物有可能会降低福善美的吸收(见药物相互作用)。

三 : 传销和直销各是什么意思?有什么区别?

传销和直销各是什么意思?有什么区别?


直销,似曾相似;传销,更是耳濡目染。可是什么叫直销,什么叫传销,却从来没有想过去了解。各大网站都有直销这一栏目,更有直销网,想来是合法的;而传销,从报纸上来看,应该是要打击的吧。

通过百度,发现原来在98年前中国的直销就叫传销,但是慢慢地就有所区别了。在汉语中,直销和传销两个词的意思区分不明显;在英文中“non-store retailing”翻译为无固定地点销售,也被称为广义的直销,“Direct selling ”翻译为狭义的直销。Direct selling 中又包括Multilevel marketing ,翻译为“多层次直销”,后者在台湾叫做“传销”。直销刚进入内地时,传销和直销两个词没有分别,只是98年,国务院《关于禁止传销经营活动的通知》出台后,传销成为非法,相关企业开始称呼为“直销”。事实上在学界,一致认为传销是直销的一种,所谓传销就是“多层次直销”。

根据官方语言,直销的定义:直销企业招募直销员,由直销员在固定营业场所之外直接向最终消费者推销产品的经销方式。传销的定义:指组织者或者经营者发展人员,通过对被发展人员以其直接或者间接发展人员的数量或者销售业绩为依据计算和给付报酬,或者要求被发展人员以交纳一定费用为条件取得加入资格等方式牟取非法利益,扰乱经济秩序,影响社会稳定的行为。

而他们的区别就在于:

1、直销分为单层次直销和多层次直销两类,前者是目前我国《直销管理条例》规定,经批准允许存在的一种经营模式,后者是《禁止传销条例》明令禁止的—传销行为。

2、从计酬方式上看:直销人员间没有连带关系,依赖个人业绩计酬;传销人员之间具有连带关系,实行团队计酬。

3、直销运作规范,相关信息公开,可通过网上查询;传销信息不公开,组织严密,欺骗性强。

4、传销要收入门费。非法传销公司要收取硬性的入门费,非法传销团伙参加者通过缴纳入门费或以认购商品等变相缴纳入门费的方式,取得加入、介绍或发展他人的资格,并从中获得回报。直销公司不收入门费。

5、直销公司销售的是通过国家有关部门认定的合格产品,传销企业销售的则是“三无”产品。

6、传销公司销售的产品不在市场上流通,而只作为“拉人头”的样品或宣传品。直销企业的产品在市场上销售较好。

7、传销企业的产品没有退货保障制度,一旦购买就无法退货。直销企业的产品则和市场的商品一样有“三包”制度。

8、直销的运作:企业经过批准成为—直销企业—在拟从事直销活动的省、自治区、直辖市设立负责该行政区域内直销业务的分支机构—在相关行政区域(县级)建立服务网点—招募直销员—经培训和考试取得直销员证后,方可以开展直销活动。传销的运作:介绍加入—交纳费用(入门费、购买商品费)—欺骗、约请他人加入—从被骗者交纳费用中提取报酬—被骗者再骗他人—以此模式循环。

四 : C/C++ 中 0 与 NULL 区别是什么?用 delete 时,用 p=0,还是用

[任思远]C/C++ 中 0 与 NULL 区别是什么?用 delete 时,用 p=0,还是用 p=NULL 好?为什么?
一直用null,结果老师推荐在c++中用0.
如果是C呢?
下面就看看www.61k.com小编为您搜集整理的参考答案吧。

网友蓝色[任思远]C/C++ 中 0 与 NULL 区别是什么?用 delete 时,用 p=0,还是用 p=NULL 好?为什么?给出的答复:
唉,终于遇到了一个有关NULL的问题,作为刚实现过编译器的nullptr的人士,对此还是有点儿感悟的,顺便吹吹牛,然后答完睡觉。

首先呢,要明白一点儿,NULL是一个无类型的东西,而且是一个宏。而宏这个东西,从C++诞生开始,就是C++之父嗤之以鼻的东西,他推崇尽量避免宏。而在他的FAQ中,也有相应的一个关于NULL与0的解释,也谈到了这一点儿。Stroustrup: C++ Style and Technique FAQ

在C++标准中,我们可以见到一个词语叫做null pointer constant,其实在C++11标准前,是只承认0为null pointer constant的。所以,在C++中,我们也经常能听到一个说法,就是赋予null pointer,应该是使用0,而非NULL。而nullptr pointer constant这个词语在C++11发布后,终于再添了一个成员,就是nullptr。而与NULL本质不同的是,nullptr是有类型的(放了在stddef头文件中),类型是 typdef decltype(nullptr) nullptr_t; 而正是因为是有类型的,这给我们编译器实现nullptr的时候带来了更多细节的考虑,当然也给了使用者更多的保障,所以如果你的编译器支持nullptr,请一定使用nullptr!


而nullptr的出现背景,其实是很简单的,C++哲学上来说就是C++之父一直对null pointer没有一个正式的表示感到非常不满,而更工程的来说,就是关于重载这个问题。

void f(void*){}void f(int){}int main(){ f(0); // what function will be called?}


网友蒙面大侠[任思远]C/C++ 中 0 与 NULL 区别是什么?用 delete 时,用 p=0,还是用 p=NULL 好?为什么?给出的答复:
NULL是个宏,跟0没任何区别,哦,或许也可能是define NULL (void*)0 ,这样可能更有意义.

C++推荐使用nullptr.


网友Clones[任思远]C/C++ 中 0 与 NULL 区别是什么?用 delete 时,用 p=0,还是用 p=NULL 好?为什么?给出的答复:
NULL就是0,是个宏

#define NULL 0


网友蒙面大侠[任思远]C/C++ 中 0 与 NULL 区别是什么?用 delete 时,用 p=0,还是用 p=NULL 好?为什么?给出的答复:
Null 不一定是 0,还可能为 (void*)0,如果你用 Null
char* p = Null 等价于 char* p = (void*)0
在C++中这会带来很严重的问题,因为void能隐式的转换为其他类型,比如 (int)(*p),这样就变得很危险。。
C++不推崇宏,加上如果你引用别人的代码,他们已经定义了 null 的宏,但可能是 NULL 或 Null 或 null 这样命名会变得混乱,所以推荐用 0,前提是你的编译器还不支持 C++ 11 标准。
如果你的编译器支持C++ 11的话,推荐使用 nullptr ,使用 0 也是很蛋疼的,比如:
void f(char*);
void f(int);
f(0); //这里用的是哪个函数?
以上是针对 C++ 的。C 的话,由于 C 有多个标准,不同标准对于空指针的定义可能不同,使用前最好查下标准文档。


网友Quanhai LI[任思远]C/C++ 中 0 与 NULL 区别是什么?用 delete 时,用 p=0,还是用 p=NULL 好?为什么?给出的答复:
在"C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\include\afx.h"查看这个文件可以找到NULL的定义,截图如下:


网友刘雨培[任思远]C/C++ 中 0 与 NULL 区别是什么?用 delete 时,用 p=0,还是用 p=NULL 好?为什么?给出的答复:

C 语言 与 C++ 对于 NULL 的要求是不同的:

C99 标准 §6.3.2.3

3 An integer constant expression with the value 0, or such an expression cast to type void *, is called a null pointer constant.55) If a null pointer constant is converted to a pointer type, the resulting pointer, called a null pointer, is guaranteed to compare unequal to a pointer to any object or function.

C99 标准 §7.17

3 The macros are
NULL
which expands to an implementation-defined null pointer constant;

C++ N3797 § 4.10

1 A null pointer constant is an integer literal (2.14.2) with value zero or a prvalue of type std::nullptr_t. A null pointer constant can be converted to a pointer type; the result is the null pointer value of that type and is distinguishable from every other value of object pointer or function pointer type. Such a conversion is called a null pointer conversion. Two null pointer values of the same type shall compare equal. The conversion of a null pointer constant to a pointer to cv-qualified type is a single conversion, and not the sequence of a pointer conversion followed by a qualification conversion (4.4). A null pointer constant of integral type can be converted to a prvalue of type std::nullptr_t. [ Note: The resulting prvalue is not a null pointer value. —end note ]

C++ N3797 18.2

3 The macro NULL is an implementation-defined C++ null pointer constant in this International Standard (4.10).195

也就是说,C99 中空指针常量是一个结果是 0 的整型常量表达式 或者 这样的表达式转换成 (void*) 之后的东西;C++ 11 中空指针常量是一个 整型字面值常量 0 或者是 std::nullptr_t 类型的 prvalue。

而在一般标准库的实现中,NULL 的定义大概是这样(Visual C++ 2015 RC):

#ifndef NULL #ifdef __cplusplus #define NULL 0 #else #define NULL ((void *)0) #endif#endif


网友任思远[任思远]C/C++ 中 0 与 NULL 区别是什么?用 delete 时,用 p=0,还是用 p=NULL 好?为什么?给出的答复:
首先NULL是一个宏,具体展开为什么是由编译器决定的(标准的说法是implementation defined)。有的定义为0, 有的C编译器定义为(void *)0,还有定义为内部关键字的(GCC的__null).

另外有个恶心的事实,那就是按照C/C++标准,0能隐式转换为任何指针类型的空指针,但是空指针的实际机器码不一定是全0。也就是说用memset置0在某些奇葩的平台上不会讲指针设为空。

最后,在C++中,最好用nullptr,如果不存在,用0比较好。因为NULL会给你错觉,以为这是什么特殊关键字,导致有的时候的重载出问题。


网友pansz[任思远]C/C++ 中 0 与 NULL 区别是什么?用 delete 时,用 p=0,还是用 p=NULL 好?为什么?给出的答复:

C++用0,纯C语言用NULL。

C++作者在自己写的C++教程里面明确说过:C++定义所有类型都必须有一个共同的0值,C++标准中0值没有类型(当然具体的编译器是否这样实现就看情况了)。空指针是0,假值布尔量也是0。使用0而不使用NULL是C++作者强烈推荐的写法。

至于为什么C++会这样规定,可能是为了更方便的使用模板吧。因为模版被设计为能使用任何类型,此时对于未知类型需要有一个所有类型均能接受的值。

但C语言没有定义以上特性。C语言中0值有类型。所以C语言要用NULL表示空指针。


--


至于nullptr的使用,鉴于它只支持最新语法,如果你不确定你的程序将用于什么编译场合,建议谨慎使用。如果目标场合确定,则可使用nullptr。不建议仅仅因为你的编译器支持就选择最新语法,要考虑你的目标场合。例如如果你针对嵌入式场合,那么你的程序是有可能面对几百种不同的 CPU 以及不同的 编译器的。——而当我发现一份开源代码对嵌入式友好时,通常都会认为这份代码出自更靠谱的程序员之手。


nullptr 在功能上更优,但模型上来说 0 更优雅,因为它为所有类型提供了一个大一统的文字量,而「大一统」理论又是很多物理学家所毕生追求的,所以 0 的使用更具有美感。


用 0 或者用 nullptr 取决于你的选择,但无论如何,C++ 使用 NULL 都是不合适的。


网友SIGSEGV[任思远]C/C++ 中 0 与 NULL 区别是什么?用 delete 时,用 p=0,还是用 p=NULL 好?为什么?给出的答复:

#include <iostream>voidfunc(int){ std::cout << "int" << std::endl;}voidfunc(void *){ std::cout << "void *" << std::endl;}intmain(int argc, char *argv[]){ func(NULL); /**< ambiguous */ func(nullptr); /**< right */}


网友鬼道[任思远]C/C++ 中 0 与 NULL 区别是什么?用 delete 时,用 p=0,还是用 p=NULL 好?为什么?给出的答复:
#define NULL (void*)0


网友蒙面大侠[任思远]C/C++ 中 0 与 NULL 区别是什么?用 delete 时,用 p=0,还是用 p=NULL 好?为什么?给出的答复:
NULL 和 0,根据不同编译器实现,类型是不同。NULL 可以代表当前32位(或者是 64位)的零值指针,其类型可以是int, 也可以是void*, 也可以是编译器内建类型。

举一个现实的例子,下面是 mingw64头文件中的crt/stddef.h (下面是选自mingw-w64-v3.1.0)
解释是解释是
1)如果gcc 是c 语言模式,那么定义NULL为 __null (编译器内建类型)
2)如果gcc是c 语言模式而且gcc版本低于3.0,那么定义NULL 为 void* 类型
3) 如果gcc是c++ 语言模式,而且是32位,那么定义NULL 为无类型(?)的0
4)如果gcc是c++ 语言模式,而且是64位,那么定义NULL 为long long 类型的0

其实这里牵扯到了gcc 和 Windows SDK 两个层面的东西,所以看起来会比较的有趣。其中最后一个4)是必须的,32位和64位的NULL是不同的类型,也是对于Windows 环境 令人印象深刻的一点。

PS1: 相关的一个问题,如果有兴趣,也可以自己搜素下NULL, '\0' 和0 的区别。
PS2: 相关的另一个问题,如果有兴趣,也可以自己搜索下libstdc++或者相关STL的nullptr 实现。最简单的如libc++ 的nullptr实现 libcxx/cstddef at master · llvm-mirror/libcxx · GitHub。另外nullptr 的类型是 std::nullptr_t,不是什么int 或者void*。


网友蒙面大侠[任思远]C/C++ 中 0 与 NULL 区别是什么?用 delete 时,用 p=0,还是用 p=NULL 好?为什么?给出的答复:
我来总结一下:

在C++里面,请参考 @蓝色 的回答;在C里面, @王文强的是正确答案。



展开一点的话,C++是强类型语言,又有模板、重载之类需要编译器“依类型随机应变”的东西;所以作为指针类型的0和整数类型的0就必须分开,不然会带来很多麻烦。

所以,和整数大家族相关,请用0(或自己重新定义的NULL,因为某些工程/实现可能把NULL定义成nullptr或者(void*) 0);和指针大家族相关,请用nullptr;这样才能写出尽量不出意外的程序。



而C呢,因为少了模板、重载之类机制,就无需区分的那么清楚了。

更进一步的话,NULL只是个宏,在前端就用0给替换掉了,不会给后端的语法分析之类逻辑看的。

所以,C里面,NULL只是个给人看的、比较友好的选项,编译器真正“看见”的,是0。


再细节一点的话,事实上,在某些特殊平台上,0是个合法指针。
所以照字面理解的话,if (p==0) 是不可能得到正确结果的。因为p的确有可能在运行中取得0值,而且的确指向了合法位置。

为了解决这个问题,C标准要求,在这些平台上,编译器要把代码中出现的、和指针的赋值/比较操作相关的0,看作一个特殊的关键字,在编译时就自行替换为适合于该平台的、某个特定的用来代表非法指针的固定值。


换句话说,C里面,NULL只是为了避免出现“魔法数字”、以方便读程序的人而已;真正起作用的是0;并且,在某些平台上,0的地位相当于半个关键字。


网友蒙面大侠[任思远]C/C++ 中 0 与 NULL 区别是什么?用 delete 时,用 p=0,还是用 p=NULL 好?为什么?给出的答复:

#0_and_nullptr/NULL


Use 0 for integers, 0.0 for reals, nullptr (or NULL) for pointers, and '\0' for chars.


Use 0 for integers and 0.0 for reals. This is not controversial.


For pointers (address values), there is a choice between 0, NULL, and nullptr. For projects that allow C++11 features, use nullptr. For C++03 projects, we prefer NULL because it looks like a pointer. In fact, some C++ compilers provide special definitions of NULL which enable them to give useful warnings, particularly in situations where sizeof(NULL) is not equal to sizeof(0).


网友王文强[任思远]C/C++ 中 0 与 NULL 区别是什么?用 delete 时,用 p=0,还是用 p=NULL 好?为什么?给出的答复:
没有任何区别,可以使用NULL,也可以使用0,只是习惯而已,C语言本身要求在指针上下文中0会被编译器翻译为合适的空指针表达,使用NULL则只是一种对程序员(而不是对编译器)的提示——这是空指针。
即使在某些空指针不等于0地址的(奇葩)机器上,你也可以给一个指针赋值为NULL或者0,编译器会保证在指针上下文中将没有修饰的0转换成正确的空指针,也就是说NULL一定等于0,但是空指针不一定。

关于空指针的种种,请参考C FAQs : Null Pointers


网友宋锐[任思远]C/C++ 中 0 与 NULL 区别是什么?用 delete 时,用 p=0,还是用 p=NULL 好?为什么?给出的答复:
一直老老实实的写NULL
虽然可以写0.但NULL 好像更有意义些;
就好比定义一个
int a = 20;

int age = 20;

age 比 a 意思明确多了,so...抛弃0,写NULL。


网友Kael Carl[任思远]C/C++ 中 0 与 NULL 区别是什么?用 delete 时,用 p=0,还是用 p=NULL 好?为什么?给出的答复:
NULL是(void*)0U
也就是一个指向0地址的无类型指针。
和0的区别是它是一个指针,
而0是立即数。
在编译的时候NULL按照指针宽度定长,
0按照一个int定长。

在逻辑中使用时并没有什么卵区别。就是个习惯而已,misra中规定整数型不能转换成指针型。


网友匿名用户[任思远]C/C++ 中 0 与 NULL 区别是什么?用 delete 时,用 p=0,还是用 p=NULL 好?为什么?给出的答复:
报告老板:这里有一大批码农!


网友谢谆本[任思远]C/C++ 中 0 与 NULL 区别是什么?用 delete 时,用 p=0,还是用 p=NULL 好?为什么?给出的答复:
我觉得如果不存在 nullptr 的话,最好用NULL,不要用0,
原因:
1、NULL 这个宏就是为了区分0 这个不明意义的东西用的。如果别人看你的代码的时候看到 0并不能立马想到它为何物。用NULL这种约定俗成的东西能让别人更快的理解。
所以用NULL 和 0 在语法上是不存在区别的。但是在编码习惯上NULL是不错的选择。
2、用nullptr 的好处是,增加了空指针的类型意义。减少了歧义的产生也会避免一些难发现的错误。所以用nullptr 和 NULL 在语法意义上是有区别的,增强了数据类型意义。


网友三块找五块[任思远]C/C++ 中 0 与 NULL 区别是什么?用 delete 时,用 p=0,还是用 p=NULL 好?为什么?给出的答复:
windows下地址空间的空指针区域有64K,空指针不一定是零吧。


网友口天日尧晴空万里[任思远]C/C++ 中 0 与 NULL 区别是什么?用 delete 时,用 p=0,还是用 p=NULL 好?为什么?给出的答复:
连题目都看不懂ヽ(≧Д≦)ノ

五 : 直销与传销的区别是什么

直销与传销的区别是什么?

2011-11-10 本文行家:司卫国

近些年来,直销与传销,让普通消费者雾里看花,水中望月,分不清直销与传销有啥区别。随着《直销管理条例》、《禁止传销条例》的颁布实施,消费者该如何辨别直销和传销呢?什么是传销“传销”是指组织者或者经营者发展人员,通过对被发展人员以其直接或者间接发展的人员数量或者销售业绩为依据计算和给付报酬,或者要求被发展人员以交纳一定费用为条件取得加入资格等方式牟取非法利益,扰乱经济秩序,影响社会稳定的行为。传销的明

近些年来,直销与传销,让普通消费者雾里看花,水中望月,分不清直销与传销有啥区别。随着《直销管理条例》、《禁止传销条例》的颁布实施,消费者该如何辨别直销和传销呢?

什么是传销

“传销”是指组织者或者经营者发展人员,通过对被发展人员以其直接或者间接发展的人员数量或者销售业绩为依据计算和给付报酬,或者要求被发展人员以交纳一定费用为条件取得加入资格等方式牟取非法利益,扰乱经济秩序,影响社会稳定的行为。

传销的明显特征:

⑴传销的商品价格严重背离商品本身的实际价值,有的传销商品根本没有任何使用价值,服务项目纯属虚构;

⑵参加人员所获得的收益并非来源于销售产品或服务等所得的合理利润,而是他人加入时所交纳的费用。

什么是直销

直销:销售人员以面对面的说明方式而不是固定店铺经营的方式,把产品或服务直接销售或推广给最终消费者,并计算提取报酬的一种营销方式。不同的公司,这些直接销售人员被称为销售商、销售代表、顾问或其他头衔,他们主要通过上门展示产品、开办活动或者是一对一销售的方式来推销产品。

直销与传销的区别

1.推销的商品不同。传销的产品大多是一些没有什么品牌,属于质次价高的商品。而直销的商品大都为一些著名的品牌,在国内外有一定的认知度。

2.推销员加入的方式不同。传销是要求推销员加入时上线要收取下线的商品押金,一般以购物或资金形式收取“入门费”。

3.营销管理不同。传销的营销管理很混乱,上线推销员是通过欺骗下线推销员来获取自己的利益。采用“复式计酬”方式,即销售报酬并非仅仅来自商品利润本身,而是按发展传销人员的“人头”计算提成。

直销的管理比较严格,推销员是不直接跟商品和钱接触的。自己的业绩由公司来考核,由公司进行分配。

4.根本的目的不同。传销的根本目的是无限制地发展下线,千方百计通过扩大下线来赚钱。而直销最终面对的终端用户是客户,进行商品交易。 上一篇:直销与传销的区别是什么? 下一篇:2013年中国最新拿牌直销公司名单有那些 将此篇文章设为精华文章
本文标题:直销与传销区别是什么-项目融资与传统的公司融资的主要区别是什么?
本文地址: http://www.61k.com/1122061.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1