字串的初始化問題

2021-09-29 08:47:52 字數 1726 閱讀 4270

#define _crt_secure_no_warnings

#include

#include

#include

/*c語言沒有字串型別,通過字元資料模擬

c語言字串,以字元『\0』結尾,數字0

*/int

main01()

;printf

("buf = %s\n"

, buf)

;//buf = abc燙燙虥??(亂碼)

char buf2[

100]=;

printf

("buf2 = %s\n"

, buf2)

;//buf2 = abc

//所有元素賦值為0

char buf3[

100]=;

//char buf4[2] = ;//陣列越界

char buf5[50]

=;printf

("buf5 = %s\n"

, buf5)

;char buf6[50]

=;printf

("buf6 = %s\n"

, buf6)

;char buf7[50]

=;printf

("buf7 = %s\n"

, buf7)

;//使用字串初始化,常用

char buf8=

"kjgklhjghfh"

;//strlen:測字串長度,不包括字元'\0'

//sizeof:測陣列長度,包括字元'\0'

printf

("strlen(buf8) = %d, sizeof(buf8) = %d\n"

,strlen

(buf8)

,sizeof

(buf8));

char buf9[

100]

="kjgklhjghfh"

;printf

("strlen(buf9) = %d, sizeof(buf9) = %d\n"

,strlen

(buf9)

,sizeof

(buf9));

//11,100

printf

("\n");

system

("pause");

return0;

}int

main()

printf

("\n");

//指標方法

//陣列名字,陣列首元素位址

p = buf;

for(i =

0; i < n; i++

)printf

("\n");

for(i =

0; i < n; i++

)printf

("\n");

for(i =

0; i < n; i++

)printf

("\n");

//以上輸出均合法且相同

//buf和p顯然不等價

p++;//buf++;不合法,因為buf只是乙個常量,不能修改

p =0x1122

;//buf = 0x1122;不合法,因為不能修改

printf

("\n");

system

("pause");

return0;

}

字串初始化

在c語言程式設計中,當我們宣告乙個字串陣列的時候,常常需要把它初始化為空串。總結起來有以下三種方式 1 char str 10 2 char str 10 3 char str 10 str 0 0 第 1 2 種方式是將str陣列的所有元素都初始化為 0 而第 3 種方式是只將str陣列的第乙個元...

字串初始化

在 裡,經常會用字串進行初始化操作。比如 void func void 對於上面2條初始化語句,它們的區別是什麼呢?1,首先,hello world 是乙個字串常量,存放在靜態常量區。2,str1是乙個字元陣列,分配在棧上,儲存空間由 hello world 的長度 含 0 決定,存放的內容由 he...

字串初始化

字串初始化使用字串初始化操作符即百分號 標記轉化說明符的開始。在 左邊為格式化字串,右邊為被格式化的值。format hello,s.s enough?values world cold print format values hello,world.cold enough?格式化字串的 s部分為轉...