各位大大:
小弟目前正在練習C語言的指標,做到一題例題:
假設有四個字元 'J'、'a'、'v'、'a',分別存於字元變數ch1、ch2、ch3、ch4,請設計一個字元指標變數cp,分別指到字元變數時將其所指到的字元輸出。
底下的小弟的寫法
#include
int main(){
char ch1='J',ch2='a',ch3='v',ch4='a';
char *cp;
cp = &ch1;
printf("%c",*cp);
cp = &ch2;
printf("%c",*cp);
cp = &ch3;
printf("%c",*cp);
cp = &ch4;
printf("%c",*cp);
}
小弟的問題在於,我覺得他那變數名稱ch1,ch2,ch3,ch4故意寫成這樣,是不是代表可以像指標函數那樣,用個變數來存變數名稱,然後直接取他的值啊!?
我的意思是像下面這樣:
for (i=1;i<=4;i++){
XXXXXX......
printf("%c",*cp);
}
2007-10-13 11:14:36 · 4 個解答 · 發問者 長島冰茶 3 in 電腦與網際網路 ➔ 程式設計
嗯,謝啦!
不過這並不符合題目的要求!
2007-10-13 11:41:46 · update #1
可以,你甚至可以這樣定義
int i;
char *cp,a[4]="JAVA";
cp=&a[0];
for(i=0;i<4;i++)
printf("%c",*(cp+i));
這樣了解了嗎
2007-10-14 22:14:11 補充:
我很難了解你的明白,可以再說清楚嗎
2007-10-13 11:39:27 · answer #1 · answered by Sunnyblue1027 4 · 0⤊ 0⤋
c 裡面好像不行,但 c# 跟 java 中有所謂的 reflection,可以作到你說的東西
2007-10-14 05:27:33 · answer #2 · answered by Dave 7 · 0⤊ 0⤋
我建議你認真去了解這些東西所指為何
不要亂用名詞
2007-10-14 05:22:12 · answer #3 · answered by novus 6 · 0⤊ 0⤋
#include
#include
#include
int main(int argc, char* argv[]){
//=====START=====//
char ch[]="Java";
char *cp=ch;
int i;
for(i=0;i<(int)strlen(ch);i++){
printf("ch%d= %c\n",i+1,*(cp+i));
}
//=====END=====//
system("PAUSE");
return 0;
}
2007-10-13 15:11:21 · answer #4 · answered by Big_John-tw 7 · 0⤊ 0⤋