色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

char *s和char s[]在內存中是怎么存儲的?

學益得智能硬件 ? 來源:學益得智能硬件 ? 2023-02-13 09:45 ? 次閱讀

36b159da-a8bf-11ed-bfe3-dac502259ad0.png

這兩行代碼有什么區別? 從語法層面上講,上面的是指針,下面的是數組,但是想要搞清楚他們的區別,還得知道他們在內存中怎么存儲的。

371e73bc-a8bf-11ed-bfe3-dac502259ad0.png

操作系統中,每個進程在啟動的時候都會被分配一塊虛擬地址空間,這塊空間包含數據段、代碼段、堆、棧等等。

char*s="helloworld";
s 屬于棧空間,在 64 位系統中占 8 個字節。

"helloworld" 我們把它稱作字符串常量,存放在只讀數據區。

既然是只讀數據,那么它一定不能修改。

所以這條語句涉及兩塊內存,棧空間的指針指向只讀數據區。

377c58ec-a8bf-11ed-bfe3-dac502259ad0.png ?

s 指向字符h,如果s++,那么就指向字符e。

3795fc0c-a8bf-11ed-bfe3-dac502259ad0.png ?

但是因為"helloworld"是只讀數據,所以 *s 不能修改,比如:
 *s = 'a';
運行會出錯。
char s[] = "helloworld";
s 是一個數組,"helloworld"用于初始化數組。 數組存放在棧空間,算上字符串后面的?,數組占 11 個字節。 既然是棧空間的數據,我們就可以通過數組名去修改,比如:
s[0] = 'a';
就是把字符 h 改成了 a。 但是由于數組名是常指針,表示的是數組首元素的地址,所以數組名不好修改。
s++;
會在編譯的時候直接報錯。 要說他們倆有什么聯系,指針可以用下標去訪問,數組也可以當作指針來使用。
char *s1 = "helloworld";
printf("%c
",s1[1]);


char s2[] = "helloworld";
printf("%c
", *(s2 + 1));



審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 字符串
    +關注

    關注

    1

    文章

    584

    瀏覽量

    20553
  • 虛擬地
    +關注

    關注

    0

    文章

    2

    瀏覽量

    5497

原文標題:char *s 和 char s[] 的區別

文章出處:【微信號:學益得智能硬件,微信公眾號:學益得智能硬件】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    char是什么數據類型

    數據代碼char
    油潑辣子
    發布于 :2023年11月16日 16:58:00

    error: incompatible types when assigning to type ‘char[20]’ from type ‘char **’

    #include#include#if 1char *GetSrand(char s[][20],int len){int a = len;srand(time(0));return s
    發表于 07-07 17:46

    bit和int char基本認識及區別

     bit和int char之類的差不多,只不過char=8位, bit=“1位而已”。都是變量,編譯器在編譯過程中分配地址。除非你指定,否則這個地址是隨機的。這個地址是整個可尋址空間,RAM+FLASH+擴展空間。bit只有0和1兩種值,意義有點像Windows下VC
    發表于 08-06 08:00 ?11次下載
    bit和int <b class='flag-5'>char</b>基本認識及區別

    char *和char數組的區別及內核訪問用戶區

    abcd 和ABCD了,這是為什么?實際上,char *只是一個指,僅僅是一個unsigned long,那么我們看看pa1,內存實際就8個字節(32位機器),兩個指針,一個4個字節,我們傳入send
    發表于 04-02 14:36 ?3168次閱讀

    浮點數在內存存儲

    浮點數在內存存儲和整數不同,因為整數都可以轉換為一一對應的二進制數據。而浮點數的存儲是由符號位 (sign) + 指數位 (exponent) + 小數位 (fraction) 組
    的頭像 發表于 09-20 10:52 ?4080次閱讀
    浮點數<b class='flag-5'>在內存</b><b class='flag-5'>中</b>的<b class='flag-5'>存儲</b>

    char 與unsigned char在嵌入式開發的區別

    嵌入式數據采集的最小單位為8bit或者8bit的倍數,在嵌入式char buf[ ]指的就是字符串,也就是所謂的字符空間,轉換成ascii碼是有符號數unsigned char b
    發表于 11-03 10:06 ?9次下載
    <b class='flag-5'>char</b> 與unsigned <b class='flag-5'>char</b>在嵌入式開發<b class='flag-5'>中</b>的區別

    51單片機 對 char 反序列輸出,以及注意事項

    反序列輸出 意思是 比如數值 0xaa (二進制 1010 1010),輸出為 0x55(二進制 0101 0101).先上函數unsigned char Reverse(unsigned
    發表于 11-23 16:20 ?8次下載
    51單片機 對 <b class='flag-5'>char</b> 反序列輸出,以及注意事項

    MCU_C語言中 數組型指針 的應用 -- char (*stringp)[]

    定義一個指向數組的指針stringpchar (*stringp)[];取得某個數組的地址 :char *dst = &string[10];指針指向該數組的某個位置:stringp = (char (*)[])dst;
    發表于 11-29 18:06 ?2次下載
    MCU_C語言中 數組型指針 的應用 -- <b class='flag-5'>char</b> (*stringp)[]

    字符型char和整型int之間的關系

    )有符號的字符表示-128127,無符號字符表示0255。char相當于signed char還是unsigned char取決于編譯器。字符型數據在內存
    發表于 01-13 15:22 ?1次下載
    字符型<b class='flag-5'>char</b>和整型int之間的關系

    S71200:char和string的定義

    數據類型為 char (Character) 的變量長度為 8 bit 位,占用1個 byte 的內存char 數據類型將單個字符存儲為 ASCII 編碼形式。
    的頭像 發表于 04-01 11:13 ?7855次閱讀

    char和string在西門子PLC的格式

    數據類型為 char (Character) 的變量長度為 8 bit 位,占用1個 byte 的內存char 數據類型將單個字符存儲為 ASCII 編碼形式。
    的頭像 發表于 07-07 17:05 ?1.6w次閱讀

    char和string在西門子PLC的格式

    數據類型為 char (Character) 的變量長度為 8 bit 位,占用1個 byte 的內存char 數據類型將單個字符存儲為 ASCII 編碼形式。
    的頭像 發表于 07-21 09:10 ?9309次閱讀

    收發通信數據時應統一用unsigned char類型

    我看有同事用char類型接收,語法上來說char默認是signed char
    的頭像 發表于 05-25 11:39 ?1199次閱讀

    如何將QString轉成char

    注意的是,如果轉換類型是const char *盡管用data()不會出錯,會給你自動轉換,但是還是不建議,因為深拷貝了一份,理論上增加了內存開銷,如果字符串長度小還好,一旦很長,這個開銷挺大,這是個好的編程
    的頭像 發表于 11-24 15:33 ?929次閱讀

    oracleto_char用法

    to_char是Oracle數據庫的一個函數,用于將不同類型的數據轉換為字符類型。 to_char函數的基本語法: to_char(表達式,格式模型) 首先,to_
    的頭像 發表于 12-05 16:54 ?2364次閱讀
    主站蜘蛛池模板: 精品久久久久久电影网| 在线观看亚洲AV无码每日更新| 午夜影视免费| 3D动漫网站HOXXXxes| 国产69精品久久久久无码麻豆 | 10分钟免费观看视频| 国产精品观看视频免费完整版| 麻花传媒XK在线观看| 亚洲精品一线二线三线无人区| 成人在线视频免费| 美女在线永久免费网站| 亚洲欧洲精品成人久久曰影片| yellow视频免费观看| 久久精品天天爽夜夜爽| 无止侵犯高H1V3无止侵犯| adc影院欢迎您大驾光临入口| 寂寞夜晚视频在线观看| 涩涩网站在线看| 99久免费精品视频在线观看2| 九九久久国产精品大片| 玩50岁四川熟女大白屁股直播| 99久久99久久免费精品蜜桃| 久久精品久精品99热| 伊人久久精品99热超碰| 曰本真人00XX动太图| 在线视频网站www色| 香蕉97超级碰碰碰碰碰久| 亚洲AV久久无码精品九号| 亚洲精品国产在线观看| 欧美麻豆一精品一AV一免费| 亚洲国产精麻豆| 国产成人精品久久一区二区三区| 男女XX00上下抽搐动态图| 亚洲无遮挡无码A片在线| 国产精品成人无码免费视频| 彭丹吃奶门| 6080yy亚洲久久无码| 久久国产一区二区三区| 亚洲精品色播一区二区| 国产精品麻豆a在线播放| 日韩成人在线视频|