關於"c語言從鍵盤輸入字串到指標陣列"的問題 - 程式前沿
文章推薦指數: 80 %
char* str = (char*)malloc(sizeof(char) * 100); scanf("%s", str);. 這樣我們輸入的字串就會儲存在str所指向的動態空間內。
對指標陣列的賦值參考以上即 ...
程式語言前端開發IOS開發Android開發雲端運算人工智慧伺服器搜尋資料庫軟體開發工具關於“c語言從鍵盤輸入字串到指標陣列”的問題2018.06.13程式語言c,指標,輸入HOME程式語言關於“c語言從鍵盤輸入字串到指標陣列”的問題Advertisement今天敲了一段程式碼,遇到了從鍵盤輸入多個字串到指標陣列的問題,在程式執行的時候出現了段錯誤的提示。
本文主要涉及到了以下知識:資料的儲存陣列和指標目錄1.1.字串常量的儲存2.2.從鍵盤輸入字串1.字串常量的儲存c語言中字串常量儲存在靜態資料區,並且有字串結束符,直到程式執行結束它才會被銷燬,所以在程式中我們把一個字串常量賦值給一個字元指標,如:char*pChar="HelloWorld!";其中,”HelloWorld!”是一個字串常量,pChar是一個字元指標。
該句相當於將字元’H’在靜態資料區中的地址賦給pChar。
此時,字串常量”HelloWorld!”只有一份儲存在靜態資料區。
另外一種常見的型別是將一個字串常量賦值給一個字元陣列,而其餘上面的指標形式有本質上的區別,如下:charstr[]="HelloWorld!";其中,”HelloWorld!”是一個字串常量,str是一個字元陣列。
此時,程式會將字串常量”HelloWorld!”拷貝一份到棧區(如果str是區域性變數),從此將於字串常量”HelloWorld!”再無聯絡。
2.從鍵盤輸入字串從上面可以看出,我們可以給一個字元指標賦一個字串常量,因為字串常量在記憶體中真實存在且有其地址。
而從鍵盤輸入則不然,我們必須先分配一些空間用來儲存鍵盤輸入的字串,例如:char*str=(char*)malloc(sizeof(char)*100);
scanf("%s",str);這樣我們輸入的字串就會儲存在str所指向的動態空間內。
對指標陣列的賦值參考以上即可。
AdvertisementAdvertisement写评论取消回覆很抱歉,必須登入網站才能發佈留言。
近期文章前端下載文件的5種方法的對比2020.02.24全棧面試彙總週刊|第十一期2020.02.24Android自定義控件|小紅點的三種實現(上)2020.02.24從同一功能的八種實現,談談react中的邏輯複用進化過程2020.02.24Flutter完整開發實戰詳解(二十、AndroidPlatformView和鍵盤問題)2020.02.24Flutter混合開發實戰問題記錄(五)1.9.1hotfix打包aar差異2020.02.24刪庫了,我們一定要跑路嗎?2020.02.24http常被問到的知識總結2020.02.24🔥Webpack插件開發如此簡單!2020.02.24從零手寫一套Express的源碼2020.02.24AdvertisementAdvertisement
延伸文章資訊
- 1如何將輸入的數個字串存入指標陣列中? - 藍色小舖
我(初學者)想將輸入的字串分別存入陣列中, 但是產生的結果不正確。請各位大大幫忙... 以下是小弟寫的一小段程式 int main(void) { char str[14];
- 2指標與字串
在〈字元陣列與字串〉談過C 風格字串,本質上就是個字元陣列,而陣列名稱具有指標性質,那可以如下建立字串嗎? char *text =
- 3【c】指向字串的指標陣列 - 程式人生
在C語言程式設計中,我們不能用scanf()函式來獲取指標陣列的值,但是 ... 輸入作為程式,我認為它是儲存輸入,但它正確地列印輸出作為給定的輸入。
- 4第7 章陣列與指標
含結束字元), 有時候程式要讓使用者輸入一. 些資料, 接著要檢查使用者輸入的字元數,. 就會用到可計算字串長度的strlen() 函式。 呼叫此函式時需以字串(字元陣列) 為參數,.
- 5【Day 26】指標介紹(下) - iT 邦幫忙::一起幫忙解決難題
因為 [] 的優先順序大於 * ,表示這個陣列元素(有三個),都指向某個特定的資料型態( int ),我們稱他為指標陣列。 來看一段程式碼: #include<stdio.h> ...