1樓:愛琪鷗
你好,你猜的沒錯,的確是指標問題,你想想哈,temp是一個char,你每一次都把&temp這地址賦值給c[i],導致c[i]用的記憶體空間始終是temp所在的記憶體空間。fgets(temp,6,fp);這語句導致temp記憶體空間存放的是"zzzzz",而每一個c[i]都指向temp所在記憶體空間,所以打出來都是"zzzzz".
o(∩_∩)o~關於指標與陣列,我的blog上有相關資料
歡迎光臨~~
以下是修改好的。
#include
#include
void main()
for(i=0;i<5;i++)
printf("%i %s\n",i,c[i]);}
2樓:匿名使用者
第二個p=a意思是讓指標p重新指向陣列a的首地址(因為在上一個迴圈過程中p的值被改變了) 注意一個問題,指標變數儲存的是某個記憶體的地址,而該記憶體區域
3樓:匿名使用者
你這個程式寫的很怪!fopen是對檔案操作的,而你卻對陣列進行操作!不符合常規!
而且使用指標時應時刻注意防止野指標的出現,而你的c[i]在複製之前未進行malloc,而且temp用完未清零,不是好習慣!
c語言中指標和引用的區別,C語言中指標和引用的區別
指標,全稱為指標變數,是用來儲存記憶體地址的一種變數。程式中,一般通過指標來訪問其指向的記憶體地址中的內容 資料 引用,是c 中提出來的一種新的使用變數的方式,即,給實際變數起個別名,通過這個別名來引用實際的變數。標準c中不支援變數的引用。這兩個概念沒有任何相關性。指標是實實在在的變數,有自己的記憶...
c語言中陣列指標和結構體指標問題
樓上都說的很不錯。針對補充,我說兩句 結構體名字不是指標,結構體陣列的名字才是指標 就好像int x x不是指標,int x 2 x是常量指標 同樣 struct aa aa x x不是指標,aa x 3 x是常量指標 對於陣列int a 2 我們通常把a看成是指標 但實際上,這個指標並不存在的,a...
c中指標怎麼用,c語言中指標怎麼使用
int p 宣告一copy個指向int的指標pint a a 3 p a printf d p 列印a的地址printf d p 列印a的值 p 4 改變a的值。printf d a 列印a的值為4 推薦看書 c和指標 這裡最好的回答吧,指標可不是一天兩天能夠學會的 c語言中指標怎麼使用?1 使用場...