c語言指針與數組
❶ c語言指針和數組的關系
c語言中,指針變數中可以保存任意的地址值;數組名是一個地址常量,不可以更改。
❷ c語言中數組和指針的區別與聯系
數組是用指針方式實現的,但數組值是一個常量,即不能改變數組的首地址,而指針是一個變數,可以改變它的值;如:數組 a和指針p,p=a+1;是合法的,但a=a+1;是不合法的。
❸ c語言中的數組和指針的區別
C語言中,數組的名稱等價於數組的首地址,
當然可以利用指針開辟動態空間,使用方式與數組在形式上相同的,
但是他們有一個本質的區別,數組名相當於一個地址常數,而指針是一個以地址為內容的變數。
指針與數組的關系可以參考下面的網頁:
http://..com/question/341950481.html
❹ C語言中指針和數組是怎樣相互轉換的
指針數組,就是一個數組里存放的都是指針,比如*p[8];p[0]里存放的就是一個指針數據
數組指針,數組名就是一個指向數組起始地址的指針,數組下標是縈引,比如num[0],他就相當於num+0;
num這個指針沒移動,於是取的是數組的第一個。num[1]相當於數組指針移1,於是指向數組第二個
❺ c語言指針與數組,怎麼聯系起來
1、指針的本質是一個與地址相關的復合類型,它的值是數據存放的位置(地址);數組的本質則是一系列的變數。
2、數組名對應著(而不是指向)一塊內存,其地址與容量在生命期內保持不變,只有數組的內容可以改變。指針可以隨時指向任意類型的內存塊,它的特徵是「可變」,所以我們常用指針來操作動態內存。
3、當數組作為函數的參數進行傳遞時,該數組自動退化為同類型的指針。
❻ C語言,指針 與 數組。
比如
p指向的是數組第一個元素的地址 所以*p就是取p指向的這個地址的值.
B錯在str是指向字元串的指針
比如
printf("%s\n",str);會輸出整個Program
由此可以說明BCD都是錯的
字元串的表現形式
在C程序中,可以用兩種方法實現一個字元串。
1. 用字元數組實現。
[例8.11]
void main(void)
{static char string [ ]="I Love China!";
printf("%s\n",string);
}
運行時輸出: I Love China!
和前面介紹的數組屬性一樣,string是數組名,它代表字元數組的首地址,(見圖8.17)。string[4]代表數組中序號為4的元素(v),實際上string[4]就是*(string+4),string+4是指向字元「v」指針。
2. 用字元指針實現。
可以不定義字元數組,而定義一個字元指針。用字元指針指向字元串中的字元。
[例8.12]
void main(void)
{char *string="I Love China!";
printf("%s\n",string);
}
在這里沒有定義字元數組,但C語言對字元串常量是按字元數組處理的,實際上在內存開辟了一個字元數組用來存放字元串數組。在程序中定義了一個字元指針變數string。並把字元串首地址(即存放字元串的字元數組的首地址)賦給它(見圖8.18)。有人認為string是一個字元串變數,以為定義時把"I Love China!"賦給該字元串變數,這是不確切的。
❼ C語言中一維數組和指針有什麼區別
指針都沒初始化,運行個毛啊。
應該這樣:
❽ C語言演算法中指針和數組有什麼區別
數組和指針是不同的。定義一個數組就為數組劃分了一段內存空間,而指針是不佔用內存空間的,除非是用malloc等類似函數為其分配內存空間。指針可以指向一個數組的內存空間,比如:
int
a[10]={0};
int
*p=a;
指針也可以指向函數,
是很靈活的。
❾ C語言中,指針和數組的區別和聯系
指針就是一個裝地址的變數,數組是內存中的一個區域,而數組名是這個區域的首地址。也就是說你在定義指針的時候編譯器只分配了一個變數的空間(空間大小由內存地址長度決定),而定義數組的時候編譯器分配了一段區域的空間(空間大小由[
]裡面的數字和數組的類型決定)。使用上你可以把一個地址賦值給指針,但是不能賦值給數組名。你可以直接給數組裡面的變數賦值,這是安全的,因為內存已經申請好了,而給指針裡面裝個那個地址賦值就要小心了,因為指針裡面那個地址很可能會出錯。