1樓:匿名使用者
用於即將開啟使用的5個檔案,比如:
f[0]=fopen("file0.txt",'r');
f[1]=fopen("file1.txt",'r');
f[2]=fopen("file2.txt",'r');
f[3]=fopen("file3.txt",'r');
f[4]=fopen("file4.txt",'r');
象上述開啟後你就可以分別讀取每個檔案中的內容了,如:
fgets(buffer,256,f[0]); //讀取f[0]對應的檔案中的一行
2樓:匿名使用者
f表示含有5個檔案指標的陣列
c語言中的陣列什麼意思?
3樓:離溫景
所謂陣列,是有序的元素序列。陣列是在程式設計中,為了處理方便, 把具有相同型別的若干元素按無序的形式組織起來的一種形式。這些無序排列的同類資料元素的集合稱為陣列。
比如油煙機的風扇轉速會和工作的模式之間有一定的關係,那麼我們就可以把它的工作模式和一維陣列的下標對應起來,我們將具體的轉速放在陣列中,這樣的話就非常方便我們在日後查詢。
再比如說家中的冷暖燈光控制這方面,色溫燈裡會有兩個燈珠,分別對應的是冷光和暖光,選擇不同的模式燈光的顏色就不同,我們就可以將這兩種燈光的亮度pwm值事先放在二維陣列中,以便呼叫調光。
在程式中合理地使用陣列,會使程式的結構比較整齊,而且可以把較為複雜的運算,轉化成簡單的陣列來表示。
擴充套件資料:
一、使用規則:
1、可以只給部分元素賦初值。當中值的個數少於元素個數時,只給前面部分元素賦值。
2、只能給元素逐個賦值,不能給陣列整體賦值。
(請注意:在c、c#語言中是這樣,但並非在所有涉及陣列的地方都這樣,資料庫是從1開始。)
3、若不給可初始化的陣列賦初值,則全部元素均為0值。
4、假如給全部元素賦值,則在陣列說明中, 可以不給出陣列元素的個數。
動態賦值可以在程式執行過程中,對陣列作動態賦值。這時可用迴圈語句配合scanf函式逐個對陣列元素賦值。
二、表示方法:
陣列元素是組成陣列的基本單元。
陣列元素也是一種變數, 其標識方法為陣列名後跟乙個下標。下標表示了元素在陣列中的順序號。陣列元素的一般形式為:陣列名[下標] 其中的下標只能為整型常量或整型表示式。
如為小數時,c編譯將自動取整。例如,a[5],a[i+j],a[i++]都是合法的陣列元素。陣列元素通常也稱為下標變數。
必須先定義陣列, 才能使用下標變數。在c語言中只能逐個地使用下標變數, 而不能一次引用整個陣列。
4樓:匿名使用者
把具有相同資料型別的若干變數按有序的形式組織起來,
以便於程式處理,這些資料元素的集合就是陣列,按照陣列
元素的型別不同,可分為:數值陣列、字元陣列、指標陣列
結構陣列等各種類別。
陣列說明的一般形式為:
型別說明符 陣列名[常量表示式],......;
其中型別說明符可以是任一種基本資料型別或構造資料型別
陣列名是定義的陣列識別符號。常量表示式表示資料元素的個
數,也就是陣列的長度。
對陣列型別的說明應注意:
1)陣列的型別實際上是陣列元素的取值型別。
2)陣列名的書寫應符合識別符號的書寫規範。
3)陣列名不能與其他變數名相同。
4)常量表示式表示陣列元素的個數,但是其下標從0開始計算
5)不能在方括號中用變數來表示元素的個數,但是可以用符號
常數或常量表示式。
6)允許在同乙個型別說明中,說明多個陣列和多個變數。
陣列元素的表示方法
一般比較簡單就是陣列名[下標]來引用,先定義後用,如果
是小數的話,直接自動取整。
陣列賦值分為:初始化賦值和動態賦值
初始化賦值一般形式為:
static 型別說明符 陣列名[常量表示式]=;
static表示靜態儲存型別,c語言規定只有靜態儲存陣列和外部陣列
才可做初始化賦值。
c語言對陣列的初始化賦值還有幾個規定:
1)可以只給部分元素賦值。
2)只能給元素逐個賦值,不能給陣列整體賦值。
3)如不給可初始化的陣列賦初值,在在陣列說明中,可以不給出陣列
元素的個數。
下面看一下多維陣列
主要看一下二維陣列,其他的就可以用二維陣列類推得到
二維陣列的型別說明的一般形式是:
型別說明符 陣列名[常量表示式1][常量表示式2]...;
在c語言中二維陣列是按行排列的
二維陣列的表示方法:
陣列名[下標][下標]
二維陣列的初始化
二維陣列初始化也是在型別說明時給各下標變數賦以初值。 二維陣列可
按行分段賦值,也可按行連續賦值。
二維陣列的初始化還應該注意:
1)可以只對部分元素賦初值,未賦初值的元素自動取為0。
2)如對全部元素賦初值,則第一維的長度可以不給出。
字元陣列:
用來存放字元變數的陣列稱為字元陣列。
c語言允許用字串的方式對陣列作初始化賦值。例如:
static char c=; 可寫為:
static char c=; 或去掉{}寫為:
sratic char c="c program";
用字串方式賦值比用字元逐個賦值要多佔乙個位元組, 用於存放字串結
束標誌'\0'。上面的陣列c在記憶體中的實際存放情況為: c program\0`\0'是
由c編譯系統自動加上的。由於採用了`\0'標誌,所以在用字串賦初值時一
般無須指定陣列的長度, 而由系統自行處理。在採用字串方式後,字元數
組的輸入輸出將變得簡單方便。 除了上述用字串賦初值的辦法外,還可用
printf函式和scanf函式一次性輸出輸入乙個字元陣列中的字串, 而不必
使用迴圈語句逐個地輸入輸出每個字元。
void main()
printf("%s\n",c);
注意在本例的printf函式中,使用的格式字串為"%s", 表示輸出的是一
個字串。而在輸出表列中給出陣列名則可。 不能寫為: printf("%s",c);
void main()
char st[15];
本例中由於定義陣列長度為15, 因此輸入的字串長度必須小於15,
以留出乙個位元組用於存放字串結束標誌`\0`。 應該說明的是,對乙個字
符陣列,如果不作初始化賦值,則必須說明陣列長度。還應該特別注意的是,
當用scanf函式輸入字串時,字串中不能含有空格,否則將以空格作為串
的結束符。例如執行例4.8,當輸入的字串中含有空格時,運**況為:
input string:this is a book this 從輸出結果可以看出空格以後的字元
都未能輸出。 為了避免這種情況, 可多設幾個字元陣列分段存放含空格的
串。程式可改寫如下:
lesson
void main()
本程式分別設了四個陣列, 輸入的一行字元的空格分段分別裝入四個陣列。
然後分別輸出這四個陣列中的字串。在前面介紹過,scanf的各輸入項必須以
位址方式出現,如 &a,&b等。但在例4.8中卻是以陣列名方式出現的,這是為
什麼呢?這是由於在c語言中規定,陣列名就代表了該陣列的首位址。 整個
陣列是以首位址開頭的一塊連續的記憶體單元。如有字元陣列char c[10],在
記憶體可表示如圖4.2。設陣列c的首位址為2000,也就是說c[0]單元位址為2000。
則陣列名c就代表這個首位址。因此在c前面不能再加位址運算子&。如寫作
scanf("%s",&c);則是錯誤的。 在執行函式printf("%s",c) 時,按陣列名c
找到首位址,然後逐個輸出陣列中各個字元直到遇到字串終止標誌'\0'為止。
字串常用函式:
用於輸入輸出的字串函式在使用前應包含標頭檔案"stdio.h",使用其他字串
函式則應包含標頭檔案"string.h".下面介紹幾個常用的字串函式:
1)字串輸出函式 puts 格式:puts(字元陣列名) 功能:把字元陣列中的字元
串輸出到顯示器。
#include"stdio.h"
main()
2)字串輸入函式gets 格式:gets(字元陣列名) 功能:從標準輸入裝置上
輸入乙個字串。
#include"stdio.h"
main()
tips:gets函式並不以空格作為字串輸入結束的標誌,而只是以回車作為輸入
結束,這是與scanf不同的部分
3)字串連線函式strcat 格式:strcat(字元陣列名1,字元陣列名2)
功能:把字元陣列2中的字串連線到字元陣列1中字串後面,並刪去字串
1後的串標誌"\0",本函式返回字元陣列1的首位址。
#include"string.h"
main()
4)字串拷貝函式strcpy 格式:strcpy(字元陣列名1,字元陣列名2)
功能:把字元陣列2中的字串拷貝到字元陣列1中,串結束標誌 "\0"也一同
拷貝,字元陣列2也可以是乙個字元常量,就相當於把乙個字串賦予乙個字元陣列
#include"string.h"
main()
5)字串比較函式strcmp格式:strcmp(字元陣列1,字元陣列2) 功能:
按照ascii碼順序比較兩個陣列中的字串,並有函式返回值返回比較結果
#include"string.h"
main()
a[i]=n;
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
}例二:
main()
;int b[3],i,j,l;
for(i=0;i<=2;i++)
printf("\narray a:\n");
for(i=0;i<=2;i++)
printf("\narray b:\n");
for(i=0;i<3;i++)
printf("%5d",b[i]);
printf("\n");
}例三:
void main()
if(p!=i)
puts(cs[i]);
printf("\n");
5樓:匿名使用者
1、陣列,顧名思義,是相同型別的數組成的乙個組,也就是說是把相同型別的一系列資料統一編制到某乙個組別中。這樣就可以通過陣列名+索引號簡單快捷的操作大量資料。這就和全校學生一樣,把學生分成多個班級,每個學生都是班級中的一員,如果要找張三,如果沒有班級的話,就要在全校學生中乙個乙個尋找,一直到找到為止;但是如果引入了班級,就可以在某某班級中尋找張三,這樣就更加方便快速了。
2、一般有四種陣列定義方式,以一維陣列為例:
//定義指定維數的陣列
int arr[10];
//定義不指定維數的陣列,陣列維數有初化列表元素個數決定。
int arr = ;
//定義指定維數的陣列,初始化不完全時,系統將未初始化元素初始化為0int arr[10] = ;
//動態分配乙個陣列。下面分配了乙個有10個元素的陣列。
int *arr =(int *) malloc(10 * sizeof(int));
在c語言中,定義陣列inta4345678910則a
陣列不能這樣初始化要用逗號,a 0 3 6 這個陣列貌似不對吧 c語言問題 若有說明int a 4 1,2,3,4,5,6,7,8,9 則陣列a第一維 若有說明int a 4 則陣列a第一維是3。定義陣列並賦值時c語言規定下標是這樣的,a n 中的n個元素應該是a 0 a n 1 因此int a 4...
c語言中定義指向字元的指標陣列chars5則
void sort char s 這裡接收到的是抄指襲針陣列,即 陣列中各元素 是指標位址,s是陣列首位址 s i 表示第i 1個元素 的值 位址,乙個字串的首位址,s i 表示這個字串的第乙個元素,是個字元 s i是第i 1個元素的位址,s i 是位址中的資料,等同於s i c語言中char是什麼...
c語言中,陣列元素的下標下限為,c語言中陣列元素下標的上下限是什麼?
c語言中,陣列元素的下標下限為0。陣列中的各元素的儲存是有先後順序的,它們在記憶體中按照這個先後順序連續存放在一起。陣列元素用整個陣列的名字和它自己在陣列中的順序位置來表示。例如,a 0 表示名字為a的陣列中的第乙個元素,a 1 代表陣列a的第二個元素,以此類推。對於vb的陣列,表示陣列元素時應注意...