c語言中字母的定義,c語言字符串定義與初始化 - 且聽風吟

字符串的兩種定義方式

char數組

char sa[] = “hello world”;

char指針

char *sp = “hello world”;

這兩種方式都產生了一個”hello world”的字符串常量,字符串常量存儲在靜態存儲區中,靜態存儲區中的內容在程序運行的整個過程中都存在,而且只存儲一份。

數組與指針的關系

在第一種定義中,字符串常量在編譯時就已經分配好了空間,但直到運行時才會為數組分配存儲空間,這時,存儲在靜態存儲區中的字符串常量會被拷貝一份到數組中,此后,數組名sa與&sa[0]等價。重要的是,sa是一個常量,你不能修改sa的值,你可以通過sa+1來標識數組里的下一個元素,也可以修改數組里的元素。然而,sa++是不允許的,因為自增運算符只能作用于變量而不是常量。

第二種定義中,程序運行時只為指針變量sp分配了存儲空間,用來字符串常量”hello world”的地址,這時,字符串常量沒有被拷貝。sp的值是可以改變的,如++sp將指向字符e。

總之,數組初始化是從靜態存儲區中把一個字符串拷貝給數組,而指針初始化只是復制這個字符串的地址。

示例

#include

int main(int args, char **argv) {

char sa[] = "hello world";

char *sp = "hello world";

// sa++; 錯誤,sa是常量

sp++;

sa[1] = 'M';

*(sa+2) = 'X';

// sp[1] = 'M'; // 錯誤,不能修改常量值

printf("%s\n", sa);

}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/542402.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/542402.shtml
英文地址,請注明出處:http://en.pswp.cn/news/542402.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python計算兩字符串中的位置_python – 計算兩個字符串之間距離的算法

是否有任何字符串距離算法沒有考慮到單詞的順序?以下算法未提供所需結果(在該示例中,所需結果應為1):import jarojaro.jaro_winkler_metric(uMichael Jordan,uJordan Michael)>>>0.47import LevenshteinLevenshtein.ratio(Michael Jordan,Jorda…

php unset函數_PHP | 使用unset()函數從數組中刪除元素

php unset函數Given an array and we have to remove an element from the array. 給定一個數組,我們必須從數組中刪除一個元素。 unset()函數 (unset() function) To remove an element from an array, we can use a PHP library unset() function, it accepts th…

vi顯示行號

vi顯示行號 :set nu 帶行號查看,并不改變文件內容:set nonu 取消帶行號查看在每個用戶的主目錄下,都有一個 vi 的配置文件".vimrc"或".exrc"用戶可以編輯它,使這些設置在每次啟動 vi 時,都有效.例如,加入如下設置行:set nu 顯示行號…

對象過濾某個屬性 循環 php_37道PHP面試題(附答案)

1、什么事面向對象?主要特征是什么?面向對象是程序的一種設計方式,它利于提高程序的重用性,使程序結構更加清晰。主要特征:封裝、繼承、多態。2、SESSION 與 COOKIE的區別是什么,請從協議,產生的…

項響琴C語言書籍在線瀏覽,電子琴 c語言程序

實用#include unsigned char code table[]{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};unsigned char temp;unsigned char key;unsigned char i,j;unsigned char STH0;unsigned char STL0;unsigned int code tab[]{64021,64103,64260,…

Java File類boolean createNewFile()方法(帶示例)

文件類布爾型createNewFile() (File Class boolean createNewFile()) This method is available in package java.io.File.createNewFile(). 軟件包java.io.File.createNewFile()中提供了此方法。 This method is used to create a new file by using createNewFile() method a…

oracle ? SQL執行過程

1.sql執行過程1>解析(判斷對象是否存在,是否有權限查詢,語義解析,檢查緩存中是否有相同的SQL等等)2>優化(CBO確定優化模式,確定訪問路徑,聯接順序,過程中通過很多綜…

vue-video-player修改src就會報錯_4、修改入口點代碼

在riscv上電時,會進行CPU自檢,然后跳轉到bootloader處執行。bootloader設置好kernel的運行環境后,從硬盤加載kernel到內存,最后再跳轉到kernel入口地址。我們采用的bootloader為OpenSBI,被加載到0x80000000地址&#x…

數碼管超聲波c語言黑51,51單片機開發板-超聲波測距-數碼管顯示

《51單片機開發板-超聲波測距-數碼管顯示》由會員分享,可在線閱讀,更多相關《51單片機開發板-超聲波測距-數碼管顯示(16頁珍藏版)》請在人人文庫網上搜索。1、計算機技術系項目工作報告課程名稱單片機開發板設計與制作實訓班級學號姓名項目名稱超聲波測距…

java 方法 示例_Java ArrayDeque帶有示例的removeFirstOccurrence()方法

java 方法 示例ArrayDeque類removeFirstOccurrence()方法 (ArrayDeque Class removeFirstOccurrence() method) removeFirstOccurrence() method is available in java.lang package. removeFirstOccurrence()方法在java.lang包中可用。 removeFirstOccurrence() method is use…

社交應用動態九宮格圖片的規則

這里主要以微信和QQ空間為作為研究對象,得到的結論如下。 QQ空間里的動態 iOS設備,以iPhone6為分界 iPhone6及以上分辨率的設備: 當寬且高同時 > 512px時,判斷 寬/高的比例值:大于 2時,以高度為基準&…

c語言實現鏈表結構6,用c語言實現的鏈表結構--數據結構實驗

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓#include"stdio.h"//使用new指針來將臨時變量重新初始化#include"stdio.h"typedef int ElemType;typedef struct LNode{ElemType data;struct LNode *next;}LNode,*LinkList;void InitList(LinkList &L)//…

splunk中 如何隱藏input_翻糖制作中,如何避免裂縫,如何隱藏裂縫,如何防粘?...

翻糖蛋糕 因精致的樣子和栩栩如生的各種造型深得人們的喜愛,它不僅滿足了人們對蛋糕口味及裝飾日益多樣化的需求,同時也在動手制作的過程中,享受到美食與生活的無窮樂趣。不過裂縫,不平整,干燥對翻糖作品來說無疑是噩夢…

Java DataInputStream readUnsignedByte()方法(帶示例)

DataInputStream類readUnsignedByte()方法 (DataInputStream Class readUnsignedByte() method) readUnsignedByte() method is available in java.io package. readUnsignedByte()方法在java.io包中可用。 readUnsignedByte() method is used to read 1 byte (i.e. 8 bit) of …

wpf中groupbox有什么用_展示設計中的標攤是什么 用的什么材料

經常聽從事展示設計的工作人員說起標攤,那什么是標攤呢?顧名思義,標攤就是通用標準的國際展會攤位的縮寫。但是不少人看到干巴巴的詞語還是不能理解。那么這篇文章從用途、材料等方面來詳細介紹標攤究竟是什么。 標攤的主要材質是什么一般來說…

Java BigInteger類| nextProbablePrime()方法與示例

BigInteger類nextProbablePrime()方法 (BigInteger Class nextProbablePrime() method) nextProbablePrime() method is available in java.math package. nextProbablePrime()方法在java.math包中可用。 nextProbablePrime() method is used to get the next probable prime n…

SQL 行轉列的兩種做法

if object_id(tb)is not null drop table tbGocreate table tb(姓名 varchar(10),課程 varchar(10),分數 int)insert into tb values(張三,語文,74)insert into tb values(張三,數學,83)insert into tb values(張三,物理,93)insert into tb values(李四,語文,74)insert into tb…

android一個工程的xml怎么引用另外一個工程的xml,如何在Android中使用XML引用庫中另一個包的字符串?...

Androiddocumentation告訴我,我可以使用“包名”訪問另一個包中的字符串,無論這意味著什么:[:]/所以在我的清單中,我想訪問一個字符串,我已將其放在一個單獨的庫項目中,在com.globalmentor.android包中 – 畢竟我的R類就是這樣:android:label"com.g…

kotlin 類和對象_Kotlin程序| 類和對象的示例(帶有學生數據)

kotlin 類和對象In the below program, we are creating a student class to input and print the student data like name, age. It is a simple example of creating class in Kotlin. 在下面的程序中,我們將創建一個學生班級,以輸入和打印學生數據&am…

python 復數數組_python的數組運算及推導式的運用

運行方式:縮進 TAb(四格)或者space(1格)注釋:#可以在程序后注釋文字 或者 ... ,""" ... """ 可以多行注釋 中間全為注釋數值輸出 print(...)圖形輸出 import matplotlib as pltplt.show()列表 list[] #字符串…