1樓:匿名使用者
用指標陣列可以更方便,舉個例子給你,假如你要到某棟單元房找乙個叫李四的人,他住在a#408;
如果你用的是二維陣列的話,你應該是a[8][8],而用指標陣列*a[8],你要找他,就要用到迴圈,for();
如果是二維陣列你要找多少回,你自己可以想象,而且當你找到a了,你是不是每次都還要回到a[k][0]來找408呢?如果是用指標陣列的話,你只要找到了*a就找到了他的第乙個位址變數,這時候你就可以直接去找408,而不用在回到a[k][0]去了,這裡的k指的是a在陣列裡的下標,其實指標陣列只是比二維陣列處理資料起來方便,要是用不好就會讓指標指錯地方,我建議能用二維陣列解決的盡量不要用指標陣列。最後建議你去看看清華大學出版社出版的譚浩強老師的c語言教程,那裡有很詳細的說明,也可以,看看資料結構。
回答的不好,希望見諒,希望能對你有所幫助
2樓:匿名使用者
指標陣列記憶體利用率更高,字元竄長度不用相同,但是記憶體分配是動態的,速度比較慢;
2維陣列記憶體是在棧上分配的,速度較快,但占用空間較大。
二維字元陣列與字元指標陣列處理多個字串時有何區別
3樓:匿名使用者
二維字元陣列一旦定義,那麼每個字串的最大長度、首位址都不能改變了。
字元指標陣列,顧名思義,它是存放字元指標的陣列。由於它僅用來存放指標,所以它指向的每個字串的首位址可以改變,字串最大長度也可以改變。
相比而言,字元指標陣列更靈活一些。
舉例:二維字元陣列:
char str[5][5]=;
str[0]到str[4]五個字串的最大長度被限制為(5-1)=4,注意處理字串時不應溢位。
由於每個字串的位址已經確定,所以以下賦值是不允許的(即便合法):
str[0]="news";
字元指標陣列:
char* str[5];
以下賦值是允許的:
str[0]="welcome!";//字串長度無限定
4樓:匿名使用者
那要看你怎麼用了
二維陣列的第乙個索引所對應的資料,就是該行資料的位址。
c語言,用指標輸出二維字串陣列的問題
5樓:
注意這行:pn=number[0];
這樣pn指向的只是number[0],也就是第乙個字串啦。
所以scanf("%s",pn+i);全部寫入的是number[0],匯入最後
number[0] == "aaabcf"
所以會得到那樣的輸出結果。
原意是不是想寫這樣?
char number[40][40];
char **pn = number;
6樓:成靈慧
#include
#include
void main()
{char number[36][40],(*pn)[40];
pn=number[0];
int score[40],*ps;
ps=score;
int i,n;
scanf("%d",&n);
for(i=0;i
對於二維陣列,要麼用指向陣列的指標,這時要定義指標的緯度,就好像,二維陣列定義時,必須確定最後那個方括號的緯度
要麼就用指標陣列,那你必須用迴圈,一一給每個指標賦值
c語言陣列可以儲存多個字串嗎?不用指標
7樓:
使用二維陣列儲存多個字串,行表示第n個字串,列儲存字串內容:
8樓:匿名使用者
只要用0分隔多個字元即可,比如:
char a[20]=; printf("%s %s\n",a,a+6);
可以輸出兩個字串內容
利用指標陣列對多個字串進行排序,中間用到 strcpy c語言程式設計題
9樓:風若遠去何人留
#include
#include
int main()
for(i = 0; i < 9; i ++)for(j = i+1; j < 10; j ++)if(strcmp(p[i], p[j]) < 0)for(i = 0; i < 10; i ++)puts(p[i]);
return 0;
}其實 用指標陣列,完全沒必要用strcpy的,用strcmp就足夠了。
比較兩個字串的大小(用陣列a,b,如果a大於b,輸出1如果a小於b,輸出 1如果a等於b,輸出0 )
字串比較用函式 strcmp。char a 80 b 80 printf please enter string a n gets a printf please enter string b n gets b if strcmp a,b 0 printf 0 else if strcmp a,b ...
c語言裡如何輸入幾個字串放到陣列中
你不愛吃烤肉 方法如下 include void main 擴充套件資料 c語言是一門通用計算機程式語言,廣泛應用於底層開發。c語言的設計目標是提供一種能以簡易的方式編譯 處理低階儲存器 產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。c語言常用詞彙有 條件 condition 變數 ...
用函式實現兩個字串的比較,即自己寫strcmp函式,函式原型為 int strcmp
如果第乙個字元就相等返回什麼呢?你應該把bad初始化為0如果第乙個字元就不同,那麼就可以判定字串的大小了,就不能繼續迴圈了,而且你的迴圈你也沒判斷字串末尾 int strcmp char p1,char p2 return p1 p2 首先 無條件的給bad賦值為 0 其次,你的判斷條件有問題 條件...