在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ C/ 指針
動態(tài)內(nèi)存
類和對象
接口 (抽象類)
結(jié)構(gòu)體
循環(huán)的類型
函數(shù)
數(shù)字
日期和時間
基本語法
多態(tài)
數(shù)據(jù)抽象
注釋
命名空間
字符串
預(yù)處理器
決策語句
修飾符的類型
鍙橀噺綾誨瀷
基本輸入輸出
操作符
數(shù)組
模板
多線程
繼承
Web 編程
信號處理
指針
存儲類型
概述
引用
常量
異常處理
開發(fā)環(huán)境
重載
變量作用域
數(shù)據(jù)類型
數(shù)據(jù)封裝
文件和流

指針

C++ 指針學(xué)起來非常容易和有趣。一些 C++ 的任務(wù)用指針執(zhí)行非常容易,諸如動態(tài)分配內(nèi)存的 C++ 工作,如果沒有指針將無法執(zhí)行。

如你所知,每個變量有一個內(nèi)存位置,每個內(nèi)存位置都有它的地址定義,這個地址定義可以使用表示內(nèi)存中地址的和運(yùn)算符 (&) 進(jìn)行訪問。下面我們將打印定義的變量的地址:

    #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;
    }

當(dāng)上述代碼被編譯執(zhí)行時,它將產(chǎn)生如下結(jié)果:

    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í)際的數(shù)據(jù)類型,或者是整數(shù),浮點(diǎn)數(shù),字符或者是其他,同樣的一個長十六進(jìn)制數(shù)表示一個內(nèi)存地址。不同的數(shù)據(jù)類型的指針之間的唯一區(qū)別在于指針指向的變量或常量的數(shù)據(jù)類型。

在 C++ 中使用指針

這里有幾個我們將非常頻繁的使用指針的重要的操作。

(a) 我們定義一個指針變量;

(b) 將一個變量的地址分配給指針;

(c) 最后使用在指針變量中的地址來訪問這個值。

這是通過使用一元運(yùn)算符 * 完成的,返回位于通過運(yùn)算符指定地址的變量的值。以下示例使用這些操作:

    #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;
    }

當(dāng)上述代碼被編譯執(zhí)行時,它將產(chǎn)生如下結(jié)果:

    Value of var variable: 20
    Address stored in ip variable: 0xbfc601ac
    Value of *ip variable: 20

詳細(xì)的 C++ 指針

指針有很多但是很容易的概念,它們對 C++ 的編程非常重要。這里有一些 C++ 程序員應(yīng)該必須清楚的重要的指針概念:

概念 描述
C++ 空指針 C++ 支持空指針,它是在幾個標(biāo)準(zhǔn)庫中被定義值為零的一個常量。
C++ 指針?biāo)惴?/td> 這里有四種可用于指針的算術(shù)運(yùn)算符:++,--,+,-
C++ 指針與數(shù)組 指針與數(shù)組之間有著密切的關(guān)系。讓我們看一看?
C++ 指針數(shù)組 你可以定義保存大量指針的數(shù)組。
C++ 指針的指針 C++ 允許您有指針的指針,等等。
將指針傳遞給函數(shù) 通過引用或通過地址傳遞參數(shù),兩種方法都可以使被調(diào)用的函數(shù)在調(diào)用函數(shù)中傳遞的參數(shù)發(fā)生更改。
從函數(shù)返回指針 C++ 允許函數(shù)返回一個指向本地變量的指針,同樣也允許返回指向靜態(tài)變量和動態(tài)分配內(nèi)存的指針。
上一篇:文件和流下一篇:引用