若已定義 int a 50,1,2,3,4p a,則以下輸出結果為3的是(

2021-04-22 04:02:07 字數 2222 閱讀 7945

1樓:自我程式設計

選b。p[3]等同與a[3]。

陣列的名字a,是表示陣列首地址的地址常量。其值就是&a[0];

*p=a;那麼p的值也是內&a[0];

p和a都表示地址容,所以*就是取地址對應的值。

(a+2)就是首地址值往後+2的地址,也就是&a[2],那麼*(a+2)就是a[2]的值2。

同理*(p+2)也是a[2]的值2。

*p[3]是不對的,p[3]不是地址是值。

注意:這裡p和a值一樣,但意義不同。p是指標值可以改變,a是常量不能改變其值。

所以p++可以,a++不行。

2樓:劉淘冬

概念:

這裡的*是指標的識別符號,*p就代表p是一個指標。

*p=a,完整的寫法應該內是,int *p=a;*代表p是一個指標,int 是指標p指向的容資料型別是int型,即整型。

因為p是指標,p=a,也就是p獲取了a的起始地址(不懂可以看看指標的定義)

*p可以理解為把指標p指向的地址裡面的數字表示出來,這裡p指向a的初始地址,a的初始地址裡放的是0,所以*p就是0,p[1]表示在p的地址上加1,因為p指向a的初始地址,也就相當於就是a的地址上加一,是a[1],所以*p[1]就是1,所以*p[3]就是3,很明顯選d

3樓:c語言基礎

&:取地址符

*:間接運算子

&變數:取變數的地址

指標[下表]等效陣列名[下表]等效 *(指標+下表)綜上所述:答案選b

若有int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;則輸出結果不為5的語句

4樓:瀚漠

答案:d

對於陣列a[10],a就是該陣列的首地址,定義指標p賦值為a,那麼a和p的操作基本相同:

a[5]=p[5]=*(a+5)=*(p+5),對於d選項,p[5]是個int值,再取*就不對了。

5樓:假面

答案:d

對於陣列copya[10],a就是該陣列的首地址bai,du定義指標p賦值為a,那麼zhia和p的操作基本相同dao。a[5]=p[5]=*(a+5)=*(p+5),對於d選項,p[5]是個int值,再取*就不對了。

整數(int型別的常量)有幾種書寫形式,程式中的整數一般採用十進位制寫法。用十進位制方式寫出的一個整數就是普通數字字元組成的一個連續序列,其中不能有空格、換行或其他字元。

若已定義: int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a, i; 其中 0≤i≤9, 則對a陣列元素正確的引用是( )

6樓:

正確的是 a) a[i];

b) &a[i] 這個是個地址

c) p[i-1] 這個可能會越界 i=0時 p[-1]越界d) a[10] 越界

7樓:假面

選擇a) a[i]

b) &a[i] 這個是個地址

c) p[i-1] 這個可能會越界,i=0時,p[-1]越界d) a[10] 越界

陣列元素也是一種變數, 其標識方內法為容陣列名後跟一個下標。下標表示了元素在陣列中的順序號。陣列元素通常也稱為下標變數。

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

20懸賞!!**等!若有以下定義:int a[]={1,2,3,4,5,6,7,8,9,10},*p=a; 則值為3的是( ) 20

8樓:匿名使用者

*p=a,陣列名錶

bai示地址,該

du句話的意思就是p=&a[0],p+=2表示p=&a[2];

接下zhi來我們看看* ++的優dao先級版,兩個優先順序是一樣的,屬於右權結合。*(p++)首先計算p++,由於++在後面,所以*(p++)相當於計算*p,然後p++;所以a和c相同,至於d ++*p表示++(*p),將*p的值++。我不知道樓主用的什麼編譯器。

對於我的理解,如果是printf(「%d」,*(p++))這種樣式輸出的話,a 輸出是3,b輸出是4,c輸出的是4,d輸出是4

9樓:匿名使用者

應該是a,*(p++)和*p++是一樣的,都是先算p++【為p】然後算* 符【為*p=3】最後p自加

這是* 和++的右結合性。

若定義inta1,2,3,4,56,78910pa則值為3的

首先需要明白的是,自增自減的操作符比解引用操作符優先順序高。對於專a,相當於p p 2,p,p 返回的是第二屬步的 p,是正確答案。對於b,為p p 2,p,p,返回的是第三步的結果,是4 c肯定是錯誤的。d,為 p 返回的是2,p代表的是a 0 這個表示式相當於 a 0 123 456 p ppp...

在16位編譯系統上,若定義int a10,20,30p當執行p後下列敘述錯誤的是A p向高地址移了

嗯,你的想法是正確的,應該是int p a 或者int p a 0 在16位編譯系統上,若有定義inta 10,20,30 p a 當執行p 後,下列錯誤的是 a錯,p與a 1等價p向高地址移動一個int型別位元組數 這個應該是選a哇 另外inta p a 應該是inta p a c語言,int a...

若有定義 int a 41,204,6,8,10則初始化後,a得到的初始值

a 2 2 8.a 0 0 1,a 0 1 2,a 0 2 0,a 0 3 0,a 1 0 0,a 1 1 0,a 1 2 0,a 1 3 0,a 2 0 4,a 2 1 6,a 2 2 8,a 2 3 10.陣列定義,從 前往後,個數不足專的補屬0。是8,你是3行4列的陣列,所以1,2,0,4是第...