字串與字元陣列的關係

2021-08-10 17:25:50 字數 1430 閱讀 1033

#include "stdafx.h"

int _tmain(int argc, _tchar* argv)

; for (int i = 0; i < 10; i++)

printf("\n***********************************\n");

char* pname = "wangguilin";//將wangguilin儲存到data的唯讀資料段

//只是編譯了首位址 將首位址賦值給了pname

for (int i = 0; *(pname + i) != '\0'; i++) //迴圈條件為判斷\0

printf("-----------------------------------\n");

printf("name=%d\n", sizeof(name)); //列印長度大小

printf("name=%p\n", name); //列印name陣列的首位址

printf("name+1=%p\n", name + 1); //列印陣列中第二個元素的首位址

printf("\"wangguilin\"=%d\n", sizeof("wangguilin")); //列印字串的長度大小

printf("\"wangguilin\"=%p\n", "wangguilin");

printf("\"wangguilin\"+1=%p\n", "wangguilin" + 1);

#endif

//字串本身是以常量存在,但是,有這樣的需要,去改變字串的內容

//此時需要把字串常量,放到字元陣列中去(相當於賦值乙個副本)

//字串常量的性質和字元陣列的性質完全吻合 所以就給=兩邊找到切合點

char name[100] = "wangguilin"; //字串賦值字元陣列 為了進行操作字串

//倆種列印方式都可以,name和"wangguilin"都是常量字元指標

printf("%s\n", name); printf("%s\n", "wangguilin");

//只有name存放的是字串時(有'\0')可以%s列印,是字元陣列時(沒'\0')

//不能用%s列印,用for迴圈列印

name[6] = 'y'; //可以對陣列進行更改 但是常量區的"wangguilin"不能更改

printf("%c\n", name[6]); printf("%c\n", "wangguilin"[6]);

printf("%s\n", name); printf("%s\n", "wangguilin");

return 0;

}

#include "stdafx.h"

int _tmain(int argc, _tchar* argv)

字元陣列與字串

字元陣列與字串 字串就是字元的序列,可看作單個資料項。定義在雙引號之間的字元組 雙引號除外 就是乙個字串常量。例 man is abviously made to think 字串變數的宣告與初始化 c語言並不支援字串資料型別。但是,它允許作為字元陣列來表示字串。因此在c語言中,字串變數就是任何合法...

字元陣列與字串

字元陣列與字串 6.3.1 字元陣列的逐個字元操作 案例6.5 從鍵盤輸入乙個字串,回車鍵結束,並將字串在螢幕上輸出。main i 0 while str x0d printf c str i printf n getch 1 字元陣列的定義 1維字元陣列,用於儲存和處理1個字串,其定義格式與1維數...

字元陣列與字串

char str 6 char str2 6 world printf s n str scanf s str2 for i 0 str i 0 i 說明 系統為了明確區分記憶體上的字串從屬關係,它會去尋找空字元,ascii嗎為0 我們稱為結束符,從陣列名指標位一直往後找,知道找到空字元為止。既然字...