標題:
APCS 觀念題 10510 - 16
[打印本頁]
作者:
李泳霖
時間:
2022-7-8 16:42
標題:
APCS 觀念題 10510 - 16
下列程式片段中,假設 a、a_ptr 和 a_ptrptr 這三個變數都有被正確宣告,且 呼叫 G() 函式時的參數為 a_ptr 及 a_ptrptr。
G() 函式的兩個參數型態該如何宣告?
void G ( ___(a)___ a_ptr, ___(b)___ a_ptrptr)
{
…
}
void main ()
{
int a = 1;
// 加入 a_ptr, a_ptrptr 變數的宣告
…
a_ptr = &a;
a_ptrptr = &a_ptr;
G(a_ptr, a_ptrptr);
}
複製代碼
(A) (a) *int , (b) *int*int
(B) (a) *int , (b) **int**int
(C) (a) int*, (b) int*
(D) (a) int*, (b) int**
提示:
何謂指標 (pointer)?
指標,其實也只是一個變數,只是這個變數的意義是:指向某個儲存位址。很玄嗎? 一點也不。
a, b, c, d, p1, p2都是一般的變數,儲存在記憶體 (memory) 中。其中,p1變數所記載的值是變數a的記憶體 (memory) 位址,而p2則記載著b的記憶體位址,像這樣的狀況,我們就稱p1是一個指向a的指標,相同的,p2是一個指向b的指標。
在C/C++中,我們用下面的式子來表示這個關係:
int *p1 = &a;
int *p2 = &b;
其中的&,稱為address of (取址)。即,p1 = address of a,p2 = address of b。
另一個符號*,代表的意義是指標。
int *p1 要由後往前閱讀來瞭解它的意義:p1 is a pointer points to an integer。
因此,int *p1 = &a; 這整行,我們可以看成:p1 is a pointer points to integer variable a,即:p1是一個指標,指向整數變數a。
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
int a=10;
int *p=&a;
cout<<a<<endl;
cout<<&a<<endl; //取址
cout<<p<<endl;
cout<<*p<<endl; //取值
cout<<*(&(*(&a)))<<endl;
system("pause");
return 0;
}
複製代碼
本帖隱藏的內容需要回復才可以瀏覽
作者:
龔品誠
時間:
2022-7-9 10:10
此帖僅作者可見
作者:
林羿丞
時間:
2022-7-9 10:10
此帖僅作者可見
作者:
曾宥程
時間:
2022-7-9 10:13
此帖僅作者可見
作者:
王銘鴻
時間:
2022-7-9 10:14
此帖僅作者可見
作者:
陳羿安
時間:
2022-7-9 10:14
此帖僅作者可見
作者:
郭哲維
時間:
2022-7-9 10:17
此帖僅作者可見
作者:
黃柏叡
時間:
2022-7-9 10:20
此帖僅作者可見
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/)
Powered by Discuz! 7.2