C語言通過指標陣列和二維陣列讀取檔案

2022-07-21 14:33:21 字數 1824 閱讀 7707

1 # include 2 # include 3 # include 4 # include 

5int

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.txt

1不是你

2還是你

3 到底是不是你

1 # include 2 # include 3 # include 4 # include 

5int

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.txt

1不是你

2還是你

3 到底是不是你

指標位址都是由作業系統分配的,不可以自己隨意制定。

先用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

排 序前後指標陣列的記憶體示意圖如下。排序前lang[0],lang[1]和lang[2]儲存的位址分別為"china","france" 和 "english"的首位址。排序結束後,3個字串的記憶體情況沒有發生變化,但指標陣列裡儲存的指標順序發生了變化:lang[1]指向 了"english",lang[2]指向了" 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...