請問這個語句 char string char s

時間 2021-10-30 06:44:56

1樓:匿名使用者

c系統會自動在str1的後面加上結束字元'\0'

所以千萬不要隨便認為自己沒有看到的就不存在!tc為你做了許多事情你沒有包含stdio.h但是不意味著程式不需要,tc為你自動包含了你的程式中main()程式沒有返回值型別,但是不意味著程式不需要,tc為你加上。

2樓:匿名使用者

會發生溢位。

str1的實際長度應該是strlen(str1)+1,因為有一個結束字元'\0',實際長度就是11,而str2長度只有10,當然要溢位了。

char * str1="0123456789";

這樣寫,其實已經有一個看不到的結束字元'\0'在str1的結束處了。

如果沒有結束標記,那這個字串就沒完沒了了,那還怎麼識別呢?

可能導致,程式崩潰,嚴重的話還會影響作業系統【象以前的98, 95等,又會藍屏了】。

3樓:匿名使用者

如果你寫成char *a = 的形式來定義字串,那麼大括號裡的『\0'是不可少的。而如果寫成char *a = "xyz..."的形式,就可以省略那個空字元。

你是問『\』的作用麼?我想吧,如果計算機連續地儲存幾個字串,其總得有什麼來標誌它們的結束,以便計算機識別這個字串在哪個字元結束。

你用fprintf向檔案格式化寫入字串,就得手工在字串間加入空格,以便用fscanf從檔案讀出時,不會把幾個連續的字串一次讀出來。

電腦語言裡有許多細節,你應該找一本教程,很細很細地研究,否則未來你寫的程式**裡可能會有不合適的地方。

4樓:

在c語言中沒有專門的字串變數,通常用一個字元陣列來存放一個字串。前面介紹字串常量時,已說明字串總是以'\0'作為串的結束符。因此當把一個字串存入一個陣列時,也把結束符'\0'存入陣列,並以此作為該字串是否結束的標誌。

有了'\0'標誌後,就不必再用字元陣列的長度來判斷字串的長度了。

用字串方式賦值比用字元逐個賦值要多佔一個位元組, 用於存放字串結束標誌'\0'。上面的陣列c在記憶體中的實際存放情況為:

c p r o g r a m \0

『\0'是由c編譯系統自動加上的。由於採用了『\0'標誌,所以在用字串賦初值時一般無須指定陣列的長度, 而由系統自行處理。

把字元陣列str1中的字串拷貝到字元陣列str2中。串結束標誌「\0」也一同拷貝。

但是由於字元組str2的長度為10,所以後面的資訊會丟失,即『\0'

丟失,所以只輸出了0123456789,而不會報錯。

:)由於系統自行處理,所以不用擔心,加了結束標誌後就多了一個位元組的長度,

面試題char str[10];strcpy(str, "0123456789");產生什麼結果?為什麼?我執行下列**未報錯!為什麼?

5樓:

因為字串最後一位是'\0'才能正確輸出,所以你那個首先要把str大小改為11,然後好像要加str[10]='\0';,這個你試下

設有以下語句:char str1[]="string",str2[8],*str3,*str4="string";不能對庫函式strcpy的正確呼叫的是()

6樓:

(因為你問這個問題,所以肯定有些混亂,所以我們討論問題的中心,其他東西不多說,免得更混亂,以前我學這個的時候也是這樣)

c是錯誤的,strcpy(a,「hello!」);

這個函式是把hello!複製到a所知的儲存空間。注意,是儲存空間。

所以,c選項是錯誤的,為什麼c是錯誤的呢?讓你混亂的地方肯定是這裡:

c選項語法上是沒有錯誤的,但是邏輯上不對,你看題目,題目說的是正確呼叫,所以如果你糾結於語法問題肯定要被搞死的。

c選項str3是個指標變數,但是剛才特地說了「儲存空間」,你能告訴我這個str3指標變數所指的儲存空間是**嗎?不能,因為定義中沒有給他賦值。

a是正確的,是把hello!複製到str1所指向的地址,也就是str1陣列中

b是正確的,是把hello!複製到str2[8]這個具有八個元素大小的陣列中

d是正確的,str4所指向的儲存空間是"string"所在的地方,所以a,b,d的str都指向了一個儲存空間,唯獨c沒有指向,所以c是不能用的。

絕對讓你滿意~

**********=

補充:樓上說str4指向了一個字面字串,是不能更改的。這個在這道題目中是不需要考慮的,為什麼他說不能更改?

因為str4更改後,string這個字串所在的儲存空間因為沒有被其他變數所指向或被定義,所以string所在記憶體會被釋放,也就是消失,這個在程式設計中會造成資料丟失,應該避免,但是在這個題目中,是無妨的。

7樓:匿名使用者

c,d不能正確呼叫。

str3這個指標沒有指向某個具體的物件;

str4指向了一個字面字串,是不能更改的。

請問這個如何解決?請問這個怎麼解決?

這種一般是系統執行的庫檔案丟失,需要網上根據錯誤的 找到相應的。dll庫檔案替換。相信大家在使用電腦過程中,有時會遇到 應用程式錯誤 的提示框,由於造成此情況的原因是多方面的,故不可能只用一種方法就可以解決問題的。下面就針對此類問題提供以下解決方法,希望對大家有所幫助,但以下方法只供借鑑,並不保證一...

請問這個小鬼是誰,請問這個明星是誰

哈哈,一看就是徐雲龍了 那標誌性的小眼睛最讓人印象深刻了 請問這個明星是誰 扇貝和他 小鬼,上過 中國有嘻哈 偶像練習生 最後以九人團成員出道了 小鬼,偶像練習生出道的成員 臺灣的邱琦雯 有演過 慾望人生 意難忘。請問這張 的人是誰 風和雨都在哭 個人檔案 本名 黃鴻升 小鬼 英文名 alien 生...

請問,這個模特是誰,請問,這個模特是誰?

姓名 李烈 烈兒 模特李烈 性別 女 生日 1986年3月27日 籍貫 湖北省陽新縣 畢業院校 湖北大學文學院 現居住地 上海市 身高 173cm 體重 49kg 活動 平面 廣告 代言 t臺 影視 曾在2007年度 2008年度被譽為湖北大學校花代言 必登高品牌鞋 雅黛麗家居服 風花雪月情侶裝中國...