当前位置: 首页 > news >正文 重庆网站网络推广推广海拉尔网站建设+网站设计 news 2025/10/23 8:08:59 重庆网站网络推广推广,海拉尔网站建设+网站设计,无线网络优化工程师,白沙网站建设的基本情况复合类型是指基于其它类型定义的类型。C 有几种复合类型#xff0c;包括引用、指针。 1 引用 引用#xff08;reference#xff09;为对象起了另外一个名字#xff0c;引用类型引用另外一种类型。通过将声明符写成d的形式来定义引用类型#xff0c;其中d是声明的变量… 复合类型是指基于其它类型定义的类型。C 有几种复合类型包括引用、指针。 1 引用 引用reference为对象起了另外一个名字引用类型引用另外一种类型。通过将声明符写成d的形式来定义引用类型其中d是声明的变量名 int ival 1024; int refval ival; // refval 指向 ival是 ival 的另一个名字 int refval2; // 错误引用必须被初始化一般在初始化变量时初始值会被拷贝到新建的对象中。然而定义引用时程序把引用和它的初始值绑定在一起而不是将初始值拷贝给引用。一旦初始化完成引用将和它的初始值对象一直绑定在一起。因为无法令引用重新绑定到另外一个对象因此引用必须初始化。 定义了一个引用之后对其进行的所有操作都是在与之绑定的对象上进行的。为引用赋值实际上是把值赋给了与引用绑定的对象。获取引用的值实际上是获取了与引用绑定的对象的值。同理以引用作为初始值实际上是以与引用绑定的对象作为初始值。 因为引用本身不是一个对象所以不能定义引用的引用。 允许在一条语句中定义多个引用其中每个引用标识符都必须以符号开头。除了两种例外情况其它所有引用的类型都要和与之绑定的对象严格匹配。而且引用只能绑定在对象上而不能与字面值或某个表达式的计算结果绑定在一起。 int refVal1 10; // 错误引用类型的初始值必须是一个对象 double dval 3.14; int refVal2 dval; // 错误此处引用类型的初始值必须是 int 型对象2 指针 指针是 “指向” 另外一种类型的复合类型。与引用类似指针也实现了对其它对象的间接访问。然而指针和引用相比又有很多不同点。其一指针本身就是一个对象允许对指针赋值和拷贝而且在指针的生命周期内它可以先后指向几个不同的对象。其二指针无须在定义时赋初值。和其它内置类型一样在块作用域内定义的指针如果没有被初始化也将拥有一个不确定的值。 定义指针类型的方法是将声明符写成*d的形式其中d是变量名。如果在一条语句中定义了几个指针变量每个变量前面都必须有符号* int *ip1, *ip2; // ip1 和 ip2 都是指向 int 型对象的指针 double dp, *dp2; // dp2 是指向 double 型对象的指针dp 是 double 型对象2.1 获取对象的地址 指针存放某个对象的地址要想获取该地址需要使用取地址符 int ival 42; int *p ival; // p 存放变量 ival 的地址或者说 p 是指向变量 ival 的指针第二条语句把p定义为一个指向int型对象的指针随后初始化p令其指向名为ival的int对象。因为引用不是对象没有实际地址所以不能定义指向引用的指针。 除了两种例外情况其它所有指针的类型都要和它所指向的对象严格匹配。 2.2 指针值 指针的值即地址应属于下列 4 种状态之一 指向一个对象。指向紧邻对象所占空间的下一个位置。空指针意味着指针没有指向任何对象。无效指针也就是上述情况之外的其它值。 试图拷贝或以其它方式访问无效指针的值都将引发错误。编译器并不负责检查此类错误这一点和试图使用未经初始化的变量是一样的。 2.3 利用指针访问对象 如果指针指向了一个对象则允许使用解引用符*来访问对象 int ival 42; int *p ival; // p 存放着变量 ival 的地址或者说 p 是指向变量 ival 的指针 std::cout *p; // 由符号 * 得到指针 p 所指的对象输出 42对指针解引用会得出所指的对象因此如果给解引用的结果赋值实际上也就是给指针所指的对象赋值。解引用操作仅适用于那些确实指向了某个对象的有效指针。 2.4 空指针 空指针不指向任何对象在试图使用一个指针之前可以先检查它是否为空。以下列出了几个生成空指针的方法 int *p1 nullptr; // 等价于 int *p1 0; int *p2 0; // 直接将 p2 初始化为字面值常量 0 int *p3 NULL; // 等价于 int *p3 0; 需要 #include cstdlibnullptr是一种特殊类型的字面值它可以被转换成任意其它的指针类型。NULL是一个预处理变量它的值就是 0。当用到一个预处理变量时预处理器会自动地将它替换为实际值因此用NULL初始化指针和用 0 初始化指针是一样的。 把int变量直接赋给指针是错误的操作即使int变量的值恰好等于 0 也不行。 2.5 赋值和指针 指针和引用都能提供对其它对象的间接访问然而在具体实现细节上二者有很大不同其中最重要的一点就是引用本身并非一个对象。一旦定义了引用就无法令其再绑定到另外的对象之后每次使用这个引用都是访问它最初绑定的那个对象。 指针和它存放的地址之间就没有这种限制了。和其它变量只要不是引用一样给指针赋值就是令它存放一个新的地址从而指向一个新的对象。 2.6 其它指针操作 只要指针拥有一个合法值就能将它用在条件表达式中。和采用算术值作为条件遵循的规则类似如果指针的值是 0条件取false任何非 0 指针对应的条件值都是true。 对于两个类型相同的合法指针可以用相等操作符或不相等操作符!来比较它们比较的结果是布尔类型。如果两个指针存放的地址值相同则它们相等反之它们不相等。这里两个指针存放的地址值相同有三种可能它们都为空、都指向同一个对象、都指向了同一个对象的下一个地址。需要注意的是一个指针指向某对象同时另一个指针指向另外对象的下一地址此时也有可能出现这两个指针值相同的情况即指针相等。 2.7 void*指针 void*是一种特殊的指针类型可用于存放任意对象的地址。一个void*指针存放着一个地址这一点和其它指针类似。不同的是我们对该地址中到底是个什么类型的对象并不了解。 利用void*指针能做的事比较有限拿它和别的指针比较、作为函数的输入或输出或者赋给另外一个void*指针。不能直接操作void*指针所指的对象因为我们并不知道这个对象到底是什么类型也就无法确定能在这个对象上做哪些操作。 概括来说以void*的视角来看内存空间也就仅仅是内存空间没办法访问内存空间中所存的对象。 3 理解复合类型的声明 3.1 指向指针的指针 一般来说声明符中修饰的个数并没有限制。当有多个修饰符连写在一起时按照其逻辑关系详加解释即可。以指针为例指针是内存中的对象也有自己的地址因此允许把指针的地址再存放到另一个指针当中。 通过*的个数可以区分指针的级别。也就是说**表示指向指针的指针***表示指向指针的指针的指针以此类推。对应的解引用时也有相应的级别。 3.2 指向指针的引用 引用本身不是一个对象因此不能定义指向引用的指针。但指针是对象所以存在对指针的引用。 文章转载自: http://www.morning.yqzyp.cn.gov.cn.yqzyp.cn http://www.morning.dpqwq.cn.gov.cn.dpqwq.cn http://www.morning.fchkc.cn.gov.cn.fchkc.cn http://www.morning.rkwwy.cn.gov.cn.rkwwy.cn http://www.morning.zcqbx.cn.gov.cn.zcqbx.cn http://www.morning.saletj.com.gov.cn.saletj.com http://www.morning.hsklc.cn.gov.cn.hsklc.cn http://www.morning.mtqqx.cn.gov.cn.mtqqx.cn http://www.morning.wnpps.cn.gov.cn.wnpps.cn http://www.morning.jjpk.cn.gov.cn.jjpk.cn http://www.morning.phxdc.cn.gov.cn.phxdc.cn http://www.morning.txmkx.cn.gov.cn.txmkx.cn http://www.morning.rsxw.cn.gov.cn.rsxw.cn http://www.morning.znknj.cn.gov.cn.znknj.cn http://www.morning.tongweishi.cn.gov.cn.tongweishi.cn http://www.morning.fgwzl.cn.gov.cn.fgwzl.cn http://www.morning.mpbgy.cn.gov.cn.mpbgy.cn http://www.morning.mqfw.cn.gov.cn.mqfw.cn http://www.morning.lanyee.com.cn.gov.cn.lanyee.com.cn http://www.morning.rwtlj.cn.gov.cn.rwtlj.cn http://www.morning.rngyq.cn.gov.cn.rngyq.cn http://www.morning.qhtlq.cn.gov.cn.qhtlq.cn http://www.morning.fbxlj.cn.gov.cn.fbxlj.cn http://www.morning.jrkzk.cn.gov.cn.jrkzk.cn http://www.morning.ftsmg.com.gov.cn.ftsmg.com http://www.morning.pyxwn.cn.gov.cn.pyxwn.cn http://www.morning.xbmwm.cn.gov.cn.xbmwm.cn http://www.morning.lcplz.cn.gov.cn.lcplz.cn http://www.morning.xlxmy.cn.gov.cn.xlxmy.cn http://www.morning.hmdyl.cn.gov.cn.hmdyl.cn http://www.morning.wjndl.cn.gov.cn.wjndl.cn http://www.morning.ywtbk.cn.gov.cn.ywtbk.cn http://www.morning.tpkxs.cn.gov.cn.tpkxs.cn http://www.morning.rzbgn.cn.gov.cn.rzbgn.cn http://www.morning.rhfbl.cn.gov.cn.rhfbl.cn http://www.morning.egmux.cn.gov.cn.egmux.cn http://www.morning.rpjr.cn.gov.cn.rpjr.cn http://www.morning.ybgyz.cn.gov.cn.ybgyz.cn http://www.morning.cptzd.cn.gov.cn.cptzd.cn http://www.morning.yjknk.cn.gov.cn.yjknk.cn http://www.morning.tcxzn.cn.gov.cn.tcxzn.cn http://www.morning.kfrhh.cn.gov.cn.kfrhh.cn http://www.morning.hkysq.cn.gov.cn.hkysq.cn http://www.morning.sgnxl.cn.gov.cn.sgnxl.cn http://www.morning.kpxzq.cn.gov.cn.kpxzq.cn http://www.morning.jrhmh.cn.gov.cn.jrhmh.cn http://www.morning.rdkqt.cn.gov.cn.rdkqt.cn http://www.morning.rntyn.cn.gov.cn.rntyn.cn http://www.morning.lqchz.cn.gov.cn.lqchz.cn http://www.morning.lpcct.cn.gov.cn.lpcct.cn http://www.morning.zsyqg.cn.gov.cn.zsyqg.cn http://www.morning.hngmg.cn.gov.cn.hngmg.cn http://www.morning.rkqqf.cn.gov.cn.rkqqf.cn http://www.morning.rqxhp.cn.gov.cn.rqxhp.cn http://www.morning.1000sh.com.gov.cn.1000sh.com http://www.morning.dzfwb.cn.gov.cn.dzfwb.cn http://www.morning.kpzrf.cn.gov.cn.kpzrf.cn http://www.morning.rpdmj.cn.gov.cn.rpdmj.cn http://www.morning.nyhtf.cn.gov.cn.nyhtf.cn http://www.morning.drwpn.cn.gov.cn.drwpn.cn http://www.morning.xrwbc.cn.gov.cn.xrwbc.cn http://www.morning.lmrcq.cn.gov.cn.lmrcq.cn http://www.morning.gcxfh.cn.gov.cn.gcxfh.cn http://www.morning.wnnlr.cn.gov.cn.wnnlr.cn http://www.morning.fbdkb.cn.gov.cn.fbdkb.cn http://www.morning.fnrkh.cn.gov.cn.fnrkh.cn http://www.morning.sypzg.cn.gov.cn.sypzg.cn http://www.morning.hkpyp.cn.gov.cn.hkpyp.cn http://www.morning.smpb.cn.gov.cn.smpb.cn http://www.morning.sfzwm.cn.gov.cn.sfzwm.cn http://www.morning.dcmnl.cn.gov.cn.dcmnl.cn http://www.morning.qgdsd.cn.gov.cn.qgdsd.cn http://www.morning.xxwhz.cn.gov.cn.xxwhz.cn http://www.morning.xsbhg.cn.gov.cn.xsbhg.cn http://www.morning.ktrdc.cn.gov.cn.ktrdc.cn http://www.morning.qykxj.cn.gov.cn.qykxj.cn http://www.morning.kfhm.cn.gov.cn.kfhm.cn http://www.morning.fgkwh.cn.gov.cn.fgkwh.cn http://www.morning.mmhyx.cn.gov.cn.mmhyx.cn http://www.morning.nkrmh.cn.gov.cn.nkrmh.cn 查看全文 http://www.tj-hxxt.cn/news/241987.html 相关文章: 河北省建设工程招投标管理网站云数据库可以做网站吗 江门建站模板网站站点规划实例 建材在哪里做网站好网站开发培训要多少钱 网站建设新手教程视频教程phpcms做视频网站 邯郸老区建设网站做网站界面设计大小 做自己的网站花多钱wordpress分类目录在 专注网站平台推广公司wordpress 最近访客 网站发布流程山东百度推广代理商 南宁营销型网站建设公司哪家好国外游戏ui设计网站 官网整站优化wordpress主题 摄影师 如何弄自己的公司网站an网站建设 nodejs网站开发实例做软件的叫什么职业 宜兴市的城乡建设管理局网站cf小号自助购买网站 如何做移动支付网站开封网站建设价格 单页网站建设哪里有提供自己买服务器做网站 做网站麻烦吗英文网站建设公司 杭州 无障碍网站建设的摘要品牌宣传方式 西安企业建站排名排名好的网站建设企业 网站的功能和作用如何开心设计一个网站 做网站怎么改关键词利用渗透的网站做寄生虫 化妆品网站建设说明营销推广运营 网站 旅游网站的制作深圳建设花了多少钱 曲周专业做网站商城网站开发价 怎么自己做网站发优惠券前端开发培训机构哪个好 一个网站怎么推广宁波公司网站开发招聘 百度整站优化百度推广手机登录 检察机关门户网站建设工作自查报告wordpress 编辑权限 北京建站模板展示网站建设内容保障工作个人总结 男男做视频网站龙岩网站制作设计 网站的域名技巧和空间选择电商网站设计论文