在线二区人妖系列_国产亚洲欧美日韩在线一区_国产一级婬片视频免费看_精品少妇一区二区三区在线

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

指針

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

如你所知,每個(gè)變量有一個(gè)內(nèi)存位置,每個(gè)內(nèi)存位置都有它的地址定義,這個(gè)地址定義可以使用表示內(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í)行時(shí),它將產(chǎn)生如下結(jié)果:

    Address of var1 variable: 0xbfebd5c0
    Address of var2 variable: 0xbfebd5b6

指針是什么?

指針是一個(gè)變量,它的值是另一個(gè)變量的地址。像任何變量或常量一樣,你必須在使用它之前聲明一個(gè)指針。

指針變量聲明的一般形式為:

    type *var-name;

在這里,type 是指針的基類型;它必須是一個(gè)有效的 C++ 類型,var-name 是指針變量的名稱。用來聲明一個(gè)指針的星號(hào)與你用于乘法的星號(hào)是一樣的。然而,在這個(gè)語句中,這個(gè)星號(hào)用來指定一個(gè)變量作為一個(gè)指針。以下是有效的指針聲明:

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

在 C++ 中使用指針

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

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

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

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

這是通過使用一元運(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í)行時(shí),它將產(chǎn)生如下結(jié)果:

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

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

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

概念 描述
C++ 空指針 C++ 支持空指針,它是在幾個(gè)標(biāo)準(zhǔn)庫中被定義值為零的一個(gè)常量。
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ù)返回一個(gè)指向本地變量的指針,同樣也允許返回指向靜態(tài)變量和動(dòng)態(tài)分配內(nèi)存的指針。
上一篇:文件和流下一篇:引用