在C語言中,陣列名是常量,不能對這進行和運算,由代表它的首地址

2021-03-27 22:07:20 字數 7448 閱讀 4103

1樓:匿名使用者

地址賦值 自加自減陣列名

2樓:

指標 自增 自減

第四個空題意不明:

陣列由陣列名代表它的首址

陣列名本身只有一個存放地址,不存在首址的問題儲存陣列首址需要用指向指標的指標

如陣列名是a

則 type **a = &a即可

3樓:

1空:地址

2空:賦值

3空:移動(+,-)4空:

為什麼c語言中,陣列名是一個地址常量,不能對它進行賦值運算

4樓:匿名使用者

在最終的來彙編結果中,陣列名只是源一個標號,對

bai應一du個地址,在程式中使用數zhi組就是要dao替換成這個起始地址,因此作為標號本身是不可以修改的,也不是一個變數。

用陣列名進行計算就是用陣列起始地址計算,但不可以給陣列名重新賦值

陣列名是一個【 】常量,不能對它進行自增、自減和賦值運算。

5樓:匿名使用者

陣列名型別是type,其

bai值與陣列首元素du的地址相zhi同,但代表dao整個陣列,且陣列名的值在內一開始就確定容無法改變,故為常量。從另外一方面來說如果可以自增,則陣列名的自增步長是陣列長度,顯然不可能。

!!! 陣列名不是指標!!!

6樓:我很無語中

有點模糊,應該說的是指標吧

1.c語言中,陣列名是一個不可變的()量,不能對它進行加、減和賦值運算

7樓:自我程式設計

陣列名是來指標常量,

自不能進行賦值,可以在表bai達式中作為參du數參與加減。

比如zhi char s[10],s表示一個指dao向陣列首地址的指標常量,printf("%c",*(s+1));可以列印s+1地址的值。但s++;不行,因為s++相當於s=s+1;賦值就不行了。

8樓:聽不清啊

c語言中,陣列名是一個不可變的(地址常)量,不能對它進行加、減和賦值運算

9樓:匿名使用者

是常量指標,對它可加n,表示a[n],而b=a-n語句沒問題,但沒意義,b所指向的內容未定義,故可加不要減,常量當然不能在被賦值

10樓:無語人未休

c語言中,陣列名是一個不可變的(地址常)量

11樓:處搖胼手胝足

指標常;

陣列名就是常量指標,指向陣列首地址

在c語言中陣列名是一個什麼的常量

12樓:匿名使用者

陣列名是代表該陣列的首地址且符合識別符號書寫規定的變數識別符號。

整個陣列是以首地址開頭的一塊連續的記憶體單元。如有字元陣列char c[10],設陣列c的首地址為2000,也就是說c[0]單元地址為2000。則陣列名c就代表這個首地址。

因此,在使用scanf()函式的時候,變數c前是不能新增地址運算子&的,scanf("%s",&c);則是錯誤的的寫法。

13樓:聽不清啊

在c語言中陣列名就是一個指向同名陣列首地址的一個(該陣列元素型別的)指標常量。

例如:int a[100];

那麼,a就是一個指向a[0]的int 型的指標常量。

14樓:匿名使用者

int [10] 型別

理解成:int陣列型別,陣列大小為10。

你可以使用這個檢視:

#include

using namespace std;

int main()

{int ar[10];

cout<或者你在編譯器裡面單步除錯到int ar[10],然後在變數檢視視窗裡面可以看到該變數ar的型別。

15樓:

int a[10]; //a的型別為const int *,是常值整型指標,不能改變a的值。

16樓:匿名使用者

陣列名代表該陣列的起始地址,沒別的意思,你可以用vc++除錯,可以看到陣列名,就是一個地址

17樓:1234567珏

陣列名 代表首地址,,,這樣看來可以當做int 但貌似可以自定義。。

c語言中,陣列在記憶體中佔一片()的儲存區,由()代表它的首地址

18樓:匿名使用者

陣列在記憶體中佔一片(連續)的儲存區,由(首元素的地址)代表它的首地址

陣列名是一個(指標)常量,不能對它進行賦值運算

19樓:

陣列名是一個指標常量,不能給其賦值,就像1,2,3這樣的整數一樣值已給定!

c語言中陣列名是一個地址變數嗎

20樓:匿名使用者

結構體名相當於類名,作用也與類名相近似。也可以將結構體名類比為自定義型別名,等同於int,double,float等,通過結構體名定義變數。

c語言中的陣列什麼意思?

21樓:離溫景

所謂陣列,是有序的元素序列。陣列是在程式設計中,為了處理方便, 把具有相同型別的若干元素按無序的形式組織起來的一種形式。這些無序排列的同類資料元素的集合稱為陣列。

比如油煙機的風扇轉速會和工作的模式之間有一定的關係,那麼我們就可以把它的工作模式和一維陣列的下標對應起來,我們將具體的轉速放在陣列中,這樣的話就非常方便我們在日後查詢。

再比如說家中的冷暖燈光控制這方面,色溫燈裡會有兩個燈珠,分別對應的是冷光和暖光,選擇不同的模式燈光的顏色就不同,我們就可以將這兩種燈光的亮度pwm值事先放在二維陣列中,以便呼叫調光。

在程式中合理地使用陣列,會使程式的結構比較整齊,而且可以把較為複雜的運算,轉化成簡單的陣列來表示。

擴充套件資料:

一、使用規則:

1、可以只給部分元素賦初值。當中值的個數少於元素個數時,只給前面部分元素賦值。

2、只能給元素逐個賦值,不能給陣列整體賦值。

(請注意:在c、c#語言中是這樣,但並非在所有涉及陣列的地方都這樣,資料庫是從1開始。)

3、若不給可初始化的陣列賦初值,則全部元素均為0值。

4、假如給全部元素賦值,則在陣列說明中, 可以不給出陣列元素的個數。

動態賦值可以在程式執行過程中,對陣列作動態賦值。這時可用迴圈語句配合scanf函式逐個對陣列元素賦值。

二、表示方法:

陣列元素是組成陣列的基本單元。

陣列元素也是一種變數, 其標識方法為陣列名後跟一個下標。下標表示了元素在陣列中的順序號。陣列元素的一般形式為:陣列名[下標] 其中的下標只能為整型常量或整型表示式。

如為小數時,c編譯將自動取整。例如,a[5],a[i+j],a[i++]都是合法的陣列元素。陣列元素通常也稱為下標變數。

必須先定義陣列, 才能使用下標變數。在c語言中只能逐個地使用下標變數, 而不能一次引用整個陣列。

22樓:匿名使用者

把具有相同資料型別的若干變數按有序的形式組織起來,

以便於程式處理,這些資料元素的集合就是陣列,按照陣列

元素的型別不同,可分為:數值陣列、字元陣列、指標陣列

結構陣列等各種類別。

陣列說明的一般形式為:

型別說明符 陣列名[常量表示式],......;

其中型別說明符可以是任一種基本資料型別或構造資料型別

陣列名是定義的陣列識別符號。常量表示式表示資料元素的個

數,也就是陣列的長度。

對陣列型別的說明應注意:

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");

C語言陣列名做函式引數問題,C語言中關於陣列名作為函式引數方面的問題

白線處是函式定義,不是函式呼叫 可以有三種寫法 int array int array 10 int array c語言中關於陣列名作為函式引數方面的問題 不知道你說的第2,4,5語句對應的是什麼。幫你解釋為什麼是1 當你呼叫fun a,b,s 傳進的引數實際上是 a 0 b 0 s變數的值 實際上...

c語言中二維陣列它的陣列名是a那a和a有什麼

對於二維陣列名a和 a,二者的區別在於型別不同。對於type a m n 當使用a時,可以等同於二級指標type 型。而使用 a時,等同於type 型。從概念上說,a表示二維陣列a的首地址,而 a表示二維陣列a第一行a 0 的首地址。這樣在使用的時候就有所區別。比如 對a的操作a 4 表示a的第四行...

在c語言中陣列a0是什麼意思,C語言a0是什麼意思

a 0 表示陣列中的bai第一個值 du,可以把它看成一個變zhi量x,a 0 也就是陣列dao中第一個值 1再存放到原位。版比如 int a 2 其中a 0 1 a 1 5 a 0 以後權,a 0 的值變為2 陣列a的第一個元素加1,陣列a應該是數值型的沒錯吧 這個就是一個自增,陣列值的自增,就是...