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指向了一個字面字串,是不能更改的。
請問這個叫什麼,請問這個東西叫什麼?
紫花地丁紫花地丁 學名 viola philippica 別名野堇菜 光瓣堇菜等。多年生草本,屬側膜胎座目,堇菜科多年生草本,無地上莖,高4 14cm,果期高可達20餘釐公尺,葉片下部呈三角狀卵形或狹卵形,上部者較長,呈長圓形 狹卵狀披針形或長圓狀卵形,花中等大,紫堇色或淡紫色,稀呈白色,喉部色較淡...
請問這個是什麼,請問這個是什麼樹?
你猜我是誰 這是一種魚,以前在農村的田園水溝邊許多,目前數量少了些,小時候我經常抓幾條回家養,這種魚叫紅旗魚,耐活性強比較容易養。謝謝大家! 這個是天堂魚的幼魚吧 看嘴型像清道夫,但顏色不像 折念露 魚排卵呢,還是排便呢,反正是魚 只看到上部分,看不全,沒法分辨清楚,不過我看著像是河裡的趴地虎,我們...
請問這個是什麼,請問這個是什麼? 10
米修看世界 全名是施耐德熱磁式電動機斷路器,可以通過按鈕控制斷路,保護馬達的 有愛的無花果 這個是漏電保護開關啊! 小彭老師說的好 這是漏電保護器,我家有,我共裝了兩個,在總電闡進屋線上裝了一個,在廁所電熱水器上又裝了一個。 這個好像是企業用的,空開的開關是不是新型的和老型的?有點像,我感覺是有點兒...