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年度被譽為湖北大學校花代言 必登高品牌鞋 雅黛麗家居服 風花雪月情侶裝中國...