1樓:百度文庫精選
內容來自使用者:落崖一號
在程式設計中,為了處理方便,把具有相同型別的若干變數按有序的形式組織起來。這些按序排列的同類資料元素的集合稱為陣列。在c語言中,陣列屬於構造資料型別。
一個陣列可以分解為多個陣列元素,這些陣列元素可以是基本資料型別或是構造型別。因此按陣列元素的型別不同,陣列又可分為數值陣列、字元陣列、指標陣列、結構陣列等各種類別。本章介紹數值陣列和字元陣列,其餘的在以後各章陸續介紹。
7.1一維陣列的定義和引用
7.1.1一維陣列的定義方式
在c語言中使用陣列必須先進行定義。一維陣列的定義方式為:型別說明符陣列名[常量表示式];
其中:型別說明符是任一種基本資料型別或構造資料型別。陣列名是使用者定義的陣列識別符號。方括號中的常量表示式表示資料元素的個數,也稱為陣列的長度。
例如:int a[10];說明整型陣列a,有10個元素。
float b[10],c[20];說明實型陣列b,有10個元素,實型陣列c,有20個元素。
char ch[20];說明字元陣列ch,有20個元素。
對於陣列型別說明應注意以下幾點:
陣列的型別實際上是指陣列元素的取值型別。對於同一個陣列,其所有元素的資料型別都是相同的。
陣列名的書寫規則應符合識別符號的書寫規定。
陣列名不能與其它變數名相同。
例如:{for(i=0;i<10;)
2樓:毓芊
c語言中定義一維陣列如下:
資料型別 陣列名[陣列長度]; // 不進行初始化的陣列資料型別 陣列名[陣列長度] = ; // 進行初始化的陣列舉例如下:
// 定義一個int型的未進行初始化陣列data1int data1[5];
// 定義一個int型的陣列data2,並對陣列中各元素進行初始化int data2[5] = ;
c語言中一維陣列正確的定義
3樓:旅者一生
符號常量是用一個識別符號來表示一個常量,一維陣列的定義方法為:型別說明符+陣列名+[常量表示式];
型別說明符是任一種基本資料型別或構造資料型別。陣列名是使用者定義的陣列識別符號。方括號中的常量表示式表示陣列元素的個數或者長度,可以是常量或符號常量,不能為變數。
例如:1、int x[8]; 表示定義一個整型陣列x,陣列長度為8.
2、float a[8],b[10];表示定義一個實型陣列b,陣列長度為8,一個實型陣列c,陣列長度為10
3、 ch[15]; 表示定義一個字元陣列ch,陣列長度為15。
擴充套件資料
在程式中可以使用下標變數,即說明這些變數的整體為陣列,陣列中的每個變數的資料型別是相同的。當陣列中每個元素都只帶有一個下標時,稱這樣的陣列為一維陣列。
一維陣列是由數字組成的以單純的排序結構排列的結構單一的陣列。一維陣列是計算機程式中最基本的陣列。二維及多維陣列可以看作是一維陣列的多次疊加產生的。
陣列是計算機程式設計中的重要概念,運用陣列可以方便地處理大規模的資料。
4樓:
定義如下:
符號常量是用一個識別符號來表示一個常量,一維陣列的定義方法為:型別說明符+陣列名+[常量表示式];型別說明符是任一種基本資料型別或構造資料型別。陣列名是使用者定義的陣列識別符號。
方括號中的常量表示式表示陣列元素的個數或者長度,可以是常量或符號常量,不能為變數。
5樓:
這道題正確的答案是:c選項。
a. int a (5);
錯誤,因為不能用(),()一般函式,以及(*int)強制轉換型別。
b. int n=5, a[ n ];
錯誤,因為不能是變數。
c.int a[sz];
正確,sz為符號常量,如被定義是:#define sz 10,這就是int a[sz];
符號常量的解釋:
1、符號常量是:在c語言中,可以用一個識別符號來表示一個常量,稱之為符號常量。
2、符號常量在使用之前必須先#define定義(如**1),一般使用const來指明(如**2)。
**例項1:#define max_size 256;
**例項2:const int max_size =256;
3、#define 也是一條預處理命令(預處理命令都以"#"開頭),稱為巨集定義命令,通過前處理器來替換符號常量,其功能是把該識別符號定義為其後的常量值。
一經定義,以後在程式中所有出現該識別符號的地方均代之以該常量值。習慣上符號常量的識別符號用大寫字母,變數識別符號用小寫字母,以示區別。
4、符號常量雖然有名字,但它不是變數。它的值在其作用域內是不能改變的,也不能被賦值。
5、使用符號常量的好處是:1、含義清楚。2、在需要改變一個常量時能做到“一改全改”。
6樓:匿名使用者
在c語言中使用陣列必須先進行定義。一維陣列的定義方式為:
型別說明符 陣列名 [常量表示式];
其中,型別說明符是任一種基本資料型別或構造資料型別。陣列名是使用者定義的陣列識別符號。方括號中的常量表示式表示資料元素的個數,也稱為陣列的長度。例如:
1、int a[10]; /* 說明整型陣列a,有10個元素 */2、float b[10], c[20]; /* 說明實型陣列b,有10個元素,實型陣列c,有20個元素 */
3、 ch[20]; /* 說明字元陣列ch,有20個元素 */
7樓:匿名使用者
c語言中定義一維陣列如下:
資料型別 陣列名[陣列長度]; // 不進行初始化的陣列
資料型別 陣列名[陣列長度] = ; // 進行初始化的陣列
舉例如下:
// 定義一個int型的未進行初始化陣列data1
int data1[5];
// 定義一個int型的數
組data2,並對陣列中各元素進行初始化
int data2[5] = ;
擴充套件資料:
定義陣列的定義格式如下:
型別識別符號 陣列名[常量表示式]
說明:①陣列名的命名規則與變數名的命名規則一致
②常量表示式表示陣列元素的個數。可以是常量或符號常量,不能為變數。
例如:int a[10]; //陣列a的定義是合法的
int a[n];
引用通過給出的陣列名稱和這個元素在陣列中的位置編號(即下標),程式可以引用陣列中的任意一個元素。
在c++中,一維陣列的引用格式為:陣列名[下標]
例如: int a[10];
其中,a是一維陣列的陣列名,該陣列有10個元素,依次表示為a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]。需要注意的是,a[10]不屬於這一個陣列的空間範圍中。當在說明部分定義了一個陣列變數後,編譯程式會在記憶體空間中開闢一串連續的儲存單元。
對於陣列而言,程式的執行部分使用的是陣列變數而不是陣列型別。需要注意的是:在引用時,下標可以是整型變數或整型表示式。
如果使用表示式,會先計算表示式以確定下標。程式只能逐個應用陣列中的元素而不能一次引用整個陣列。如:
int a[100],b[100]; a=b;
8樓:一隻蟈蟈
陣列的定義格式如下:
型別識別符號 陣列名[常量表示式]
說明:
①陣列名的命名規則與變數名
的命名規則一致
②常量表示式表示陣列元素的個數。可以是常量或符號常量,不能為變數。
例如: [1]
1、 int a[10]; //陣列a的定義是合法的
2、 int a[n]; //若n為變數,則陣列a的定義是非法的
拓展資料:
對於陣列型別說明應注意以下幾點:
1) 陣列的型別實際上是指陣列元素的取值型別。對於同一個陣列,其所有元素的資料型別都是相同的。
2) 陣列名的書寫規則應符合識別符號的書寫規定。
3) 陣列名不能與其它變數名相同。例如:
int a;
float a[10];
是錯誤的。
4) 方括號中常量表示式表示陣列元素的個數,如a[5]表示陣列a有5個元素。但是其下標從0開始計算。因此5個元素分別為a[0], a[1], a[2], a[3], a[4]。
5) 不能在方括號中用變數來表示元素的個數,但是可以是符號常數或常量表示式。例如:
#define fd 5
// ...
int a[3+2],b[7+fd];
是合法的。但是下述說明方式是錯誤的。
int n=5;
int a[n];
6) 允許在同一個型別說明中,說明多個陣列和多個變數。例如:
int a,b,c,d,k1[10],k2[20];
9樓:風不停息
符號常量的概念是:在程式執行過程中,其值不能被改變的量稱為常量.用一個標示符代表一個常量的符號,稱為符號常量
符號常量在使用之前必須先定義,其一般形式為:#define 識別符號 常量
其中define是一條預處理命令,被叫做巨集定義命令,功能是把這個識別符號定義為常量值。經過定義之後程式中所有出現這個識別符號的地方都用這個常量值代替。
擴充套件材料:
另一層含義指它們的編碼方法是不變的(但是嚴格來說‘人為規定的某一種方法也可以因地制宜而人為改變,所以其本身數值大小‘不是‘常量’的內涵’),比如字元'a'無論在硬體、軟體還是各種程式語言中,它的資訊編碼即為 ‘ 0x41’。
在除了‘c/c++’的一些高階程式語言中,‘常量’可以被稱作,“在一個資訊變化過程中,始終不發生改變的量”,其可以是不隨著時間變化的某些量的固定資訊;也可以表示為某一數值的字元(或字串),常被用來標識、測量和比較兩者的差異。
但在 ‘c/c++語言中’,‘常量’如果還用‘執行過程中不變的量’來描述,就顯得不太準確了,甚至是在具體使用時,這就是一個錯誤的概念。在 ‘c/c++’中,定義‘指標常量’時,根據‘const ’的位置的不同,可以定義出幾個不同的形式,雖然其看起來‘符合常量的概念’,但是在實際執行中,其值或地址值是會發生變化的。所以本質還不是‘常量概念’
形式為 :const type name = value;
例如:const int months = 12;
這樣就可以在程式中使用months而不是12了。常量(如months)被初始化後,其值就被固定了,編譯器將不允許再修改該常量的值。假如您這樣做:
months = 18;
是不對的,就好像您將值4賦給值3一樣,無法通過編譯。
此外注意應在宣告中對const進行初始化。下面的**是不正確的:
const int toes;// toes的值此時是不確定的
toes=10;//這時進行賦值就太晚了
C語言中怎樣定義動態一維陣列,c語言中定義一個動態一維陣列的函式,然後在主函式中使用
天雲一號 在c語言中,陣列的定義都是固定長度的,長度不允許變化。可以通過連結串列的方式來達到定義 動態陣列 的等價功能,舉例如下 連結串列節點定義如下 struct node 存放資料時可以對節點中的node賦值即可,如 struct node p 定義一個連結串列節點p data 3 存放第一個資...
C語言中關於二維陣列的問題,c語言關於定義二維陣列的問題
巢琨瑜 float a 5 是定義了一個指向陣列的指標,如果要把它當成二維陣列的話,相當於列數為5,行數可以動態分配。如 float a 5 int n 2 定義行數為2 a new float n 5 int sum 0 for int i 0 i 對於你定義的這個陣列,它表示有5個float 型...
一維陣列和二維陣列有什麼區別麼,C語言中一維陣列與二維陣列有什麼區別和共同點?
小周高等教育 答疑 單行或單列的陣列,稱為一維陣列,多行多列 含2行2列 的陣列是二維陣列。陣列和陣列公式的區別 陣列,就是元素的集合,按行 列進行排列。陣列公式 就是包含有陣列運算的公式。ctrl shift enter,三鍵結束,這個過程就是告訴excel請與陣列運算的方式來處理本公式,反饋一個...