1 # include 2 # include 3 # include 4 # include5int
main ()6;
1213
int a[100
];14 file *fp = fopen ("
name.txt
","a+");
15if (fp ==null)
1620 p =getc (fp);
21if (p ==eof)
2232}33
else
3445}46
for (m = 0;m < z;m++)
4750
for (m = 0;m < z;m++)
5154
55 m =_rand (z);
56//
printf ("%d %s",a[m],q+m);57}
58int _rand (int
x)59
name.txt1不是你
2還是你
3 到底是不是你
1 # include 2 # include 3 # include 4 # include5int
main ()
619 p =getc (fp);
20if (p ==eof)
2131}32
else
3341
/*while (eof != fscanf (fp,"%d %s",&a[z],q+z))
42*/46}
47for (m = 0;m < z;m++)
4851 m =_rand (z);
52//
printf ("%d %s",a[m],q+m);53}
54int _rand (int
x)55
name.txt1不是你
2還是你
3 到底是不是你
指標位址都是由作業系統分配的,不可以自己隨意制定。排 序前後指標陣列的記憶體示意圖如下。排序前lang[0],lang[1]和lang[2]儲存的位址分別為"china","france" 和 "english"的首位址。排序結束後,3個字串的記憶體情況沒有發生變化,但指標陣列裡儲存的指標順序發生了變化:lang[1]指向 了"english",lang[2]指向了" france "。先用malloc函式分配乙個足夠大的記憶體空間,然後用scanf函式輸入內容,不用這些空間後最好用free函式釋放。部分**
#include /* 使用malloc和free函式需要這個標頭檔案 */
char *a[3];
a[0]=(char *)malloc(100); /* 算上結尾的\0,不超過100個字元 */
scanf("%s", a[0]);
free(a[0]); /* 使用解釋後釋放 */
c語言教材講指標的部分有講解。
*****************************
利用指標陣列對字串排序的程式如下:
void sortstring(int n, char *str)}}
main()
;sortstring(3,lang);
for(i=0;i<3;i++)
printf("\n%s ", lang[i]);
}程式執行的結果為:
china
english
france
二維陣列和指標 C語言
二維陣列和指標 1 二維陣列a由若干個一維陣列組成在c語言中定義的二維陣列實際上是乙個一維陣列,這個一維陣列的每乙個成員又是乙個一維陣列。如以上定義的a陣列,則可視a陣列由a 0 a 1 a 2 等三個元素組成,而a 0 a 1 a 2 等每個元素又分別是由4個整型元素組成的一維陣列。可用a 0 0...
二維陣列和指標 C語言)
二維陣列和指標 c語言 loveyou 二維陣列和指標 1 二維陣列a由若干個一維陣列組成在c語言中定義的二維陣列實際上是乙個一維陣列,這個一維陣列的每乙個成員又是乙個一維陣列。如以上定義的a陣列,則可視a陣列由a 0 a 1 a 2 等三個元素組成,而a 0 a 1 a 2 等每個元素又分別是由4...
C語言二維陣列指標(指向二維陣列的指標)
二維陣列的定義 int matrix 見圖的操作那篇文章裡面的定義 或者這篇文章提供了另外一種方法。二維陣列在概念上是二維的,有行和列,但在記憶體中所有的陣列元素都是連續排列的,它們之間沒有 縫隙 以下面的二維陣列 a 為例 int a 3 4 從概念上理解,a 的分布像乙個矩陣 0 1 2 3 4...