国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C語(yǔ)言字符串的兩種定義方式

這篇具有很好參考價(jià)值的文章主要介紹了C語(yǔ)言字符串的兩種定義方式。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

C語(yǔ)言中 初始化一個(gè)字符串有兩種定義方式:

第一種為

char str[] = "hello"; 或者 char str[] = {'h','e','l','l','o','\0'};

第二種為

char *str = "hello";

兩種的區(qū)別如下:

  1. char str[] 將字符串定義為字符串變量 (可讀可寫(xiě))而 char *str 將字符串定義為字符串常量 (只讀)
    #include <stdlib.h>
    
    int main() {
    
    char str1[] = "hello";
    char m[] = "hello";
    
    char *str2 = "hello";
    char *n = "hello";
    
    //str1[0] = 'p';
    //str2[0] = 'l';
    //printf("%s",str1); // 成功 
    //printf("%s",str2); // 錯(cuò)誤 寫(xiě)入訪問(wèn)權(quán)限沖突
    
    printf("str1 = %p\n",str1);
    printf("m = %p\n",m);
    
    printf("str2 = %p\n",str2);
    printf("n = %p\n",n);
    
    return 0;
    }

    程序運(yùn)行結(jié)果如下:C語(yǔ)言字符串的兩種定義方式

    ?可以看出字符串str1 與 m地址不同 ,說(shuō)明它們?cè)趦?nèi)存中開(kāi)辟了兩塊區(qū)域 是一種變量。而字符串str2與n地址相同,說(shuō)明它們指向同一塊區(qū)域 是字符串常量。

  2. 雖然char str1[] 定義str1為字符串變量,但是它的數(shù)組名代表指針常量不可以修改

    #include <stdlib.h>
    
    int main() {
    
        char str[] = "ni chou sha";
        while(*str) {
            // 遍歷字符串 打印每個(gè)字符地址
            printf("%p\n",str);
            str++; // 報(bào)錯(cuò) 表達(dá)式必須是可修改的左值
        }
    
        return 0;
    }

    上述程序有誤 字符串名str實(shí)質(zhì)為指針指向字符串首地址,但是是一種指針常量 不能被修改!可以將程序改為

    #include <stdlib.h>
    
    int main() {
    
        char str[] = "ni chou sha";
        char *p = str; // 定義一個(gè)指針變量 用于指針操作
        while(*p) {
            // 遍歷字符串 打印每個(gè)字符地址
            printf("%p\n",str);
            p++;
        }
    
        return 0;
    }

    或者

    #include <stdlib.h>
    
    int main() {
    
        char *str = "ni chou sha";
        
        while(*str) {
            // 遍歷字符串 打印每個(gè)字符地址
            printf("%p\n",str);
            str++;
        }
    
        return 0;
    }

    程序運(yùn)行成功! 結(jié)果如下:C語(yǔ)言字符串的兩種定義方式

    ?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-400872.html

到了這里,關(guān)于C語(yǔ)言字符串的兩種定義方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • C語(yǔ)言中的字符串操作函數(shù)自定義實(shí)現(xiàn):標(biāo)準(zhǔn)版與限定長(zhǎng)度版

    C語(yǔ)言中的字符串操作函數(shù)自定義實(shí)現(xiàn):標(biāo)準(zhǔn)版與限定長(zhǎng)度版

    ??????? 目錄 1. 標(biāo)準(zhǔn)字符串操作函數(shù)自定義實(shí)現(xiàn) (a) 自定義strcpy函數(shù) (b) 自定義strcat函數(shù) (c) 自定義strcmp函數(shù) 2. 限定長(zhǎng)度字符串操作函數(shù)自定義實(shí)現(xiàn) (a) 自定義strncpy函數(shù) (b) 自定義strncat函數(shù) (c) 自定義strncmp函數(shù) ?對(duì)字符串的操作是不可或缺的一部分。標(biāo)準(zhǔn)庫(kù)提供了如strcpy、

    2024年01月21日
    瀏覽(44)
  • Python_字符串(字符串拼接:join() 與 +拼接符兩種方法效率對(duì)比)

    Python_字符串(字符串拼接:join() 與 +拼接符兩種方法效率對(duì)比)

    運(yùn)算結(jié)果如下圖所示: 顯然,在循環(huán)1000000次的前提下,字符的join()運(yùn)算效率遠(yuǎn)遠(yuǎn)高于使用+拼接符的運(yùn)算。 其根本邏輯在于: 對(duì)于簡(jiǎn)單的+運(yùn)算符,字符串每次相加都會(huì)創(chuàng)建一個(gè)新的對(duì)象。較為費(fèi)時(shí)。 而對(duì)于join(),其用于列表內(nèi)字符串的相加,列表中字符串的相加并不會(huì)創(chuàng)建

    2023年04月24日
    瀏覽(22)
  • JS兩種方法判斷字符串是否包含中文

    第一種是正則表達(dá)式來(lái)判斷,判斷輸入的字符中是否包含中文。 第二種是通過(guò)charCodeAt()來(lái)判斷,字符串.charCodeAt(index)255 就是中文,否則是英文。

    2024年02月13日
    瀏覽(30)
  • js 判斷兩個(gè)字符串是否相等(有兩種方法)

    使用比較運(yùn)算符判斷兩個(gè)字符串是否相等 可以使用比較運(yùn)算符 === 或 == 來(lái)判斷兩個(gè)字符串是否相等。例如: 在上述代碼中,我們定義了兩個(gè)字符串變量 str1 和 str2 ,并使用 === 運(yùn)算符來(lái)比較它們的值。如果兩個(gè)字符串相等,則輸出 兩個(gè)字符串相等 ;否則輸出 兩個(gè)字符串不相

    2024年02月05日
    瀏覽(108)
  • Android——自定義Dialog的兩種常見(jiàn)方式

    通常我們只需要關(guān)注三個(gè)回調(diào)方法: onCreateDialog:創(chuàng)建一個(gè)dialog外殼 onCreateView:給dialog外殼填充自己想要的樣式布局 onViewCreated:這里面給布局的view進(jìn)行初始化操作,可以設(shè)置一些監(jiān)聽(tīng)器等等 事例: 自定義布局文件:隨便寫(xiě)一個(gè)

    2024年02月16日
    瀏覽(22)
  • mysql 拼接字符串,截取字符串 常用方式

    1,拼接字符串常用:CONCAT(‘需要拼接的字符串’,列名) CONCAT(\\\'+\\\',b.Telephone)查詢出號(hào)碼,前邊加上+號(hào) 2,分割字符串 substring_index(b.Telephone,\\\'+\\\',1) 用從左往右的第一個(gè)+分割電話號(hào)碼,獲取分割后的從左往右的第一個(gè)字符串 比如 86+133333333 執(zhí)行完后 為 86 substring_index(b.Telephone,\\\'+\\\',

    2024年02月14日
    瀏覽(31)
  • 兩種不同的方法來(lái)檢查Python中的變量是否是字符串

    在Python中,每個(gè)變量都有一個(gè)數(shù)據(jù)類(lèi)型。數(shù)據(jù)類(lèi)型表示一個(gè)變量?jī)?nèi)部存儲(chǔ)的是哪種數(shù)據(jù)。 數(shù)據(jù)類(lèi)型是編程語(yǔ)言最重要的特征,它區(qū)分了我們可以存儲(chǔ)的不同類(lèi)型的數(shù)據(jù),如字符串、int和float。 在處理許多編程問(wèn)題時(shí),可能會(huì)遇到這樣的情況:我們需要找到某個(gè)變量的數(shù)據(jù)類(lèi)型

    2024年02月11日
    瀏覽(24)
  • Java中字符串占位替換、字符串拼接、字符串與Collection互轉(zhuǎn)的方式

    1、String.format 最原始最基礎(chǔ)的方式。 使用%來(lái)表示占位,后面跟上不同的標(biāo)識(shí)符,用于限定這個(gè)占位符的參數(shù)類(lèi)型,由jdk原生提供支持。 示例: 2、MessageFormat 如果遇到一個(gè)參數(shù)需要替換模板中多個(gè)占位的場(chǎng)景,更友好的方式是MessageFormat,由jdk原生提供支持。 示例: 舉例:將

    2024年02月16日
    瀏覽(30)
  • 字符串的遍歷方式

    ?常見(jiàn)的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)類(lèi)型,如字符串,樹(shù),哈希表,棧,隊(duì)列等,我們經(jīng)常在做題的時(shí)候會(huì)遇到遍歷他們的情況,所以掌握好這些方法才能在遇到題目的時(shí)候打開(kāi)思路解決問(wèn)題,掌握好招式才能正式的解決問(wèn)題,才能有獨(dú)立完成問(wèn)題的可能性。 ?那么我們這篇文章先學(xué)習(xí)

    2023年04月09日
    瀏覽(20)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包