欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

C++的char[]和char*變量有什么不同

本篇內(nèi)容主要講解“C++的char[]和char*變量有什么不同”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“C++的char[]和char*變量有什么不同”吧!

西盟網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),西盟網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為西盟上1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營(yíng)銷網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的西盟做網(wǎng)站的公司定做!

問題描述

C/C++編程中,如果對(duì)char[]和char*對(duì)象進(jìn)行比較,當(dāng)然一般來說可以使用strcmp方法,但是如果直接使用==會(huì)產(chǎn)生什么結(jié)果呢,如下面的程序:

#include <iostream>using namespace std;int main() {char strArray1[] = "abc";char strArray2[] = "abc";cout << boolalpha << (strArray1 == strArray2) << endl; char* strPointer1 = "abc";char* strPointer2 = "abc";cout << boolalpha << (strPointer1 == strPointer2 ) << endl;
}

boolalpha 方法是為了以true或者false的方式打印

這個(gè)程序很簡(jiǎn)單,不需要太多的解釋。
最后打出的結(jié)果可能會(huì)感覺應(yīng)該都是false,但是實(shí)際的結(jié)果是:
第一個(gè)打出的是false,而第二個(gè)打出的是true

問題分析

那么為什么會(huì)有這種結(jié)果呢,首先需要知道的是==比較的不是指向的內(nèi)容abc,比較的是各個(gè)str對(duì)象中存儲(chǔ)的是指向內(nèi)容的地址,換句話說就是abc的地址,是它們本身的存儲(chǔ)的值。

  1. Array對(duì)象
    對(duì)Array對(duì)象來說,是運(yùn)行時(shí)在??臻g上分配的內(nèi)存,所以每個(gè)對(duì)象都是單獨(dú)去申請(qǐng)內(nèi)存,各自保存一份自己的abc,所以Array對(duì)象存儲(chǔ)的地址也是不一樣的,所以第一個(gè)結(jié)果是false

  2. Pointer對(duì)象
    對(duì)Pointer對(duì)象來說,兩個(gè)字符指針并沒有分配相應(yīng)的存儲(chǔ)區(qū),是后面的abc是以常量的形式存在常量區(qū),然后把首地址的值賦值給了Pointer對(duì)象,所以Pointer對(duì)象存儲(chǔ)的地址應(yīng)該來說是一樣的,所以第二個(gè)結(jié)果是true;

注意事項(xiàng)

其實(shí)可以想到通過打印相關(guān)的地址來查看結(jié)果是否正確,但這里會(huì)有個(gè)問題:

數(shù)組對(duì)象
下面直接打印數(shù)組對(duì)象,其實(shí)是打印的數(shù)組對(duì)象的內(nèi)容,結(jié)果都是abc

cout << strArray1 << endl;cout << strArray2 << endl;

對(duì)于數(shù)組對(duì)象可以這樣打印數(shù)組的首地址,可以從這里看出這兩個(gè)地址是不同的,即兩個(gè)abc存儲(chǔ)在不同的空間

cout << &strArray1 << endl;cout << &strArray2 << endl;

指針對(duì)象
下面直接打印指針對(duì)象,其實(shí)是打印的也是指針對(duì)象的內(nèi)容,結(jié)果都是abc,這樣打印按道理來說應(yīng)該是打印的字符串的首地址,是因?yàn)閷?duì)cout進(jìn)行了重載,打印字符指針時(shí),給出地址不是打印地址內(nèi)容,而是打印相對(duì)的字符的內(nèi)容,所以會(huì)得到abc結(jié)果

cout << strPointer1 << endl;cout << strPointer2 << endl;

但是如果取該指針的地址來打印的話,結(jié)果兩個(gè)地址是不對(duì)的,因?yàn)榇藭r(shí)打印的不是指向的字符串的首地址了,而是該指針的地址,當(dāng)然不一樣

cout << &strPointer1 << endl;cout << &strPointer2 << endl;

如果要獲取指針對(duì)象的字符串的首地址的值的話,需要讓cout輸出符不認(rèn)為它是一個(gè)字符指針,這樣就不會(huì)產(chǎn)生重載操作了,這樣可以看到兩個(gè)地址是相同的

cout << (void*)strPointer1 << endl;cout << (void*)strPointer2 << endl;

到此,相信大家對(duì)“C++的char[]和char*變量有什么不同”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

網(wǎng)站題目:C++的char[]和char*變量有什么不同
文章出自:http://aaarwkj.com/article32/gihjsc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、虛擬主機(jī)、App設(shè)計(jì)網(wǎng)站設(shè)計(jì)、企業(yè)網(wǎng)站制作、面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
亚洲一区二区三区欧美精品| 亚洲综合成人av在线| 亚洲色图视频免费观看| 日韩欧美一区二区免费| 森泽佳奈在线视频观看| 一区二区不卡中文av| 天天操夜夜操夜夜操精品| 中文字幕乱码在线观看一区| 91在线国产精品视频| 特黄日韩免费一区二区三区| 人人妻人人澡人人爽老妇| 久久午夜福利欧美视频| 99久久婷婷免费国产综合精品| 亚洲精品一区国产精品av| 欧美成人精品午夜一区二区| 亚洲视频精品一区二区三区| 亚洲精品日韩国产3区| 亚洲男人天堂在线视频| 欧美伊人色综合久久天天| 日韩版色视频在线观看| 婷婷色综合一区二区三区| 国产精品久久123区| 亚洲一区二区三区精品乱码| 日本欧美亚洲一区二区三区| 日韩精品大全一区二区| 成人精品国产一区二区| 91九色国产成人久久精品| 欧美日韩久久久久久精品| 伊人久久大香线蕉av网站| 粉嫩av一男战三女高潮| 亚洲a∨乱码一区二区三区蜜臀| 人妻系列日本在线播放| 午夜18禁毛片免费看| 激情五月综合开心五月| 蜜臀av在线精品国自产拍| 日本国产在线一区二区| 精品视频一区二区三区中文字幕| 亚洲熟女精品不卡一区二区| 国产91久久精品一区二区| 中文国产人精品久久蜜桃| 欧美久久久久综合一区|