W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
C++ 指針學起來非常容易和有趣。一些 C++ 的任務用指針執(zhí)行非常容易,諸如動態(tài)分配內(nèi)存的 C++ 工作,如果沒有指針將無法執(zhí)行。
如你所知,每個變量有一個內(nèi)存位置,每個內(nèi)存位置都有它的地址定義,這個地址定義可以使用表示內(nèi)存中地址的和運算符 (&) 進行訪問。下面我們將打印定義的變量的地址:
#include <iostream>
using namespace std;
int main ()
{
int var1;
char var2[10];
cout << "Address of var1 variable: ";
cout << &var1 << endl;
cout << "Address of var2 variable: ";
cout << &var2 << endl;
return 0;
}
當上述代碼被編譯執(zhí)行時,它將產(chǎn)生如下結果:
Address of var1 variable: 0xbfebd5c0
Address of var2 variable: 0xbfebd5b6
指針是一個變量,它的值是另一個變量的地址。像任何變量或常量一樣,你必須在使用它之前聲明一個指針。
指針變量聲明的一般形式為:
type *var-name;
在這里,type 是指針的基類型;它必須是一個有效的 C++ 類型,var-name 是指針變量的名稱。用來聲明一個指針的星號與你用于乘法的星號是一樣的。然而,在這個語句中,這個星號用來指定一個變量作為一個指針。以下是有效的指針聲明:
int*ip;// pointer to an integer
double *dp;// pointer to a double
float *fp;// pointer to a float
char *ch // pointer to character
所有指針的值的實際的數(shù)據(jù)類型,或者是整數(shù),浮點數(shù),字符或者是其他,同樣的一個長十六進制數(shù)表示一個內(nèi)存地址。不同的數(shù)據(jù)類型的指針之間的唯一區(qū)別在于指針指向的變量或常量的數(shù)據(jù)類型。
這里有幾個我們將非常頻繁的使用指針的重要的操作。
(a) 我們定義一個指針變量;
(b) 將一個變量的地址分配給指針;
(c) 最后使用在指針變量中的地址來訪問這個值。
這是通過使用一元運算符 * 完成的,返回位于通過運算符指定地址的變量的值。以下示例使用這些操作:
#include <iostream>
using namespace std;
int main ()
{
int var = 20; // actual variable declaration.
int *ip;// pointer variable
ip = &var; // store address of var in pointer variable
cout << "Value of var variable: ";
cout << var << endl;
// print the address stored in ip pointer variable
cout << "Address stored in ip variable: ";
cout << ip << endl;
// access the value at the address available in pointer
cout << "Value of *ip variable: ";
cout << *ip << endl;
return 0;
}
當上述代碼被編譯執(zhí)行時,它將產(chǎn)生如下結果:
Value of var variable: 20
Address stored in ip variable: 0xbfc601ac
Value of *ip variable: 20
指針有很多但是很容易的概念,它們對 C++ 的編程非常重要。這里有一些 C++ 程序員應該必須清楚的重要的指針概念:
概念 | 描述 |
---|---|
C++ 空指針 | C++ 支持空指針,它是在幾個標準庫中被定義值為零的一個常量。 |
C++ 指針算法 | 這里有四種可用于指針的算術運算符:++,--,+,- |
C++ 指針與數(shù)組 | 指針與數(shù)組之間有著密切的關系。讓我們看一看? |
C++ 指針數(shù)組 | 你可以定義保存大量指針的數(shù)組。 |
C++ 指針的指針 | C++ 允許您有指針的指針,等等。 |
將指針傳遞給函數(shù) | 通過引用或通過地址傳遞參數(shù),兩種方法都可以使被調(diào)用的函數(shù)在調(diào)用函數(shù)中傳遞的參數(shù)發(fā)生更改。 |
從函數(shù)返回指針 | C++ 允許函數(shù)返回一個指向本地變量的指針,同樣也允許返回指向靜態(tài)變量和動態(tài)分配內(nèi)存的指針。 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: