在群裡有人問了這麼個問題,下面這段程式執行會報錯
intmain()
看了一眼沒發現問題,自己執行了下,果然報錯,明顯是那種指標型別的錯誤
簡單除錯了下發現問題出在strcat這裡,難道是函式使用不對??確認下沒有問題
群裡有人提示說可能是字元常量的問題,馬上意識到應該就是這問題了,想起曾經琢磨過的記憶體分配的問題,這種指標是僅僅指標在棧上,而陣列則是指向的內容也在棧上,首先把p1和p2換成陣列int pi,p2執行沒有錯誤,看來基本是這問題了
嘗試執行int *p1="abc";p1[2]='d';也會報錯證明p1指向的內容是不可修改的,即在常量區,問題搞定
C 語言中的文字常量區
程式設計過程中,遇到這樣乙個問題,於是求教別人,自己又查閱了一些資料。先總結一下。問題 如果改為 則執行正確,百思不得其解後,通過一上午的查閱資料,終於找到答案。我做了乙個測試程式,截了乙個圖,答案都在下面 答案已經全部在圖上。總結 1.char p hello 是在編譯時就要確定字串的內容。cha...
C語言中常量和變數
在c語言中,常量和變數都是可以用來儲存和表示資料的,常量值在程式執行的過程中是不可變的,而變數是可變的 1,常量的概念 常量是不可變的量,c語言中數值可以用常量表示,常量可以表示各種資料型別的值 2,變數的概念 變數和常量是相對的,變數在程式執行過程中是可變的量,由變數名和變數值組成,變數名是乙個標...
學習筆記 C語言中常量與指標
1.常量指標 指標所指向的內容不可以通過指標的間接引用 p 改變,指標本身是變數,但是指標所指向的值是乙個常量const int x 1 const int p1 p1 x 指標p1的型別是 const int p1 10 error char s1 hello error const char s...