日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

【小白学习C++ 教程】七、在C++指针声明和指针相关概念

發布時間:2024/10/8 c/c++ 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【小白学习C++ 教程】七、在C++指针声明和指针相关概念 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

@Author:Runsen

C++ 指針學習起來有點難,但是很重要。一些 C++ 程序使用指針更容易執行,另外其他 C++ 程序,例如動態內存分配,沒有指針就無法執行。

每個變量都是一個內存位置,每個內存位置都定義了其地址,可以使用與號(&)運算符訪問該地址,該運算符表示內存中的地址。

下面代碼考慮以下將打印定義的變量的地址

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

輸出如下

Address of var1 variable: 0x61fe1c Address of var2 variable: 0x61fe12

指針聲明

在編程語言中,指針是一個變量,其值是另一個變量的地址。與任何變量或常量一樣,您必須先聲明一個指針,然后才能使用它。

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

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

所有指針的值的實際數據類型,無論是整數、浮點數、字符還是其他類型,都是相同的,一個長的十六進制數,代表同一個內存地址。

不同數據類型的指針之間的唯一區別是指針指向的變量或常量的數據類型

C++ 使用指針

象征名稱描述
&(與號)地址運算符確定變量的地址。
?(星號)間接運算符訪問地址的值。
#include <iostream> using namespace std;int main(){int var = 5;int *ip;ip = &var;cout << "變量Var的值:" << endl;cout << var << endl;cout << "變量Var的中存儲的地址ip:" << endl; cout << ip << endl;cout << "訪問指針中可用地址處的值:";cout << *ip << endl; }

具體輸出如下

變量Var的值: 5 變量Var的中存儲的地址ip: 0x61fe14 訪問指針中可用地址處的值:5

請注意,0x0相當于0. 它只是 的十六進制表示0。

指針的概念

指針有很多但很簡單的概念,它們對 C++ 編程非常重要。以下是 C++ 程序員應該清楚的幾個重要的指針概念 -

指針說明
空指針C++ 支持空指針,它是在幾個標準庫中定義的零值常量。
指針算術有四種算術運算符可用于指針:++、–、+、-
指針與數組指針和數組之間有著密切的關系。
指針數組您可以定義數組來保存多個指針。
指向指針的指針C++ 允許您在指針上使用指針等等。
將指針傳遞給函數通過引用或通過地址傳遞參數都允許被調用函數在調用函數中更改傳遞的參數。
從函數返回指針C++ 允許函數返回指向局部變量、靜態變量和動態分配的內存的指針。

空指針

如果沒有要分配的確切地址,將指針 NULL 分配給指針變量。分配為 NULL 的指針稱為空指針。

#include <iostream>using namespace std; int main () {int *ptr = NULL;cout << "The value of ptr is " << ptr ;}

當上面的代碼被編譯和執行時,它會產生以下結果 -

The value of ptr is 0

在大多數操作系統上,不允許程序訪問地址 0 處的內存,因為該內存是由操作系統保留的。空指針:指針變量指向內存中編號為0的空間

要檢查空指針,您可以使用 if 語句如下 -

if(ptr) // succeeds if p is not null if(!ptr) // succeeds if p is null

指針算術

指針是一個地址,它也是一個數值;因此,可以像對數值一樣對指針執行算術運算。有四種算術運算符可用于指針:++、--、+和-。

“指針++”和“指針–”表示指針所指地址的下一個或前一個數據的地址。

#include <iostream> using namespace std; int main() {int a[5];int i;int *p;for(i=0; i<5; i++)cin>>a[i];cout<<endl;for(i=0; i<5; i++)cout<<a[i]<<" ";//使用數組名和下標訪問的方式訪問數組進行輸出for(i=0; i<5; i++)cout<<*(a+i)<<" ";//使用數組名和指針運算訪問的方式進行輸出for(p=a; p<(a+5); p++)cout<<*p<<" ";//使用指針變量訪問的方式進行輸出return 0; }

運行結果

1 2 3 4 51 2 3 4 5 1 2 3 4 5 1 2 3 4 5

總結

以上是生活随笔為你收集整理的【小白学习C++ 教程】七、在C++指针声明和指针相关概念的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。