一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C/C++ - 學習C++指針聲明和指針相關概念

學習C++指針聲明和指針相關概念

2021-06-11 01:23Python之王小sen C/C++

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

學習C++指針聲明和指針相關概念

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

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

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

  1. #include <iostream> 
  2.  
  3. using namespace std; 
  4. int main () { 
  5.    int  var1; 
  6.    char var2[10]; 
  7.  
  8.    cout << "Address of var1 variable: "
  9.    cout << &var1 << endl; 
  10.  
  11.    cout << "Address of var2 variable: "
  12.    cout << &var2 << endl; 
  13.  

輸出如下

  1. Address of var1 variable: 0x61fe1c 
  2. Address of var2 variable: 0x61fe12 

指針聲明

 

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

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

  1. type *var-name

這里,type是指針的類型;它必須是有效的 C++ 類型,并且var-name是指針變量的名稱。

用于聲明指針的星號與用于乘法的星號相同。但是,在此語句中,星號用于將變量指定為指針。

下面是有效的指針聲明

  1. int    *ip;    // pointer to an integer 
  2. double *dp;    // pointer to a double 
  3. float  *fp;    // pointer to a float 
  4. char   *ch     // pointer to character 

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

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

C++ 使用指針

 

 學習C++指針聲明和指針相關概念

  1. #include <iostream> 
  2. using namespace std; 
  3.  
  4. int main(){ 
  5.     int var = 5; 
  6.     int *ip; 
  7.     ip = &var; 
  8.     cout << "變量Var的值:"  << endl; 
  9.     cout << var << endl; 
  10.     cout << "變量Var的中存儲的地址ip:" << endl;  
  11.     cout << ip << endl; 
  12.     cout << "訪問指針中可用地址處的值:"
  13.     cout << *ip << endl; 

具體輸出如下

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

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

指針的概念

 

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

學習C++指針聲明和指針相關概念

空指針

 

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

  1. #include <iostream> 
  2.  
  3. using namespace std; 
  4. int main () { 
  5.    int  *ptr = NULL
  6.    cout << "The value of ptr is " << ptr ; 
  7.  } 

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

  1. The value of ptr is 0 

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

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

  1. if(ptr)     // succeeds if p is not null 
  2. if(!ptr)    // succeeds if p is null 

指針算術

 

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

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

  1. #include <iostream> 
  2. using namespace std; 
  3. int main() 
  4.  int a[5]; 
  5.  int i; 
  6.  int *p; 
  7.  for(i=0; i<5; i++) 
  8.   cin>>a[i]; 
  9.  cout<<endl; 
  10.  for(i=0; i<5; i++) 
  11.   cout<<a[i]<<"  ";//使用數組名和下標訪問的方式訪問數組進行輸出 
  12.  for(i=0; i<5; i++) 
  13.   cout<<*(a+i)<<"  ";//使用數組名和指針運算訪問的方式進行輸出 
  14.  for(p=a; p<(a+5); p++) 
  15.   cout<<*p<<"  ";//使用指針變量訪問的方式進行輸出 
  16.  return 0; 

運行結果

  1.  
  2. 1  2  3  4  5  1  2  3  4  5  1  2  3  4  5 

原文鏈接:https://mp.weixin.qq.com/s/SiLmZD-V_ZNqSaR4ibb7nA

延伸 · 閱讀

精彩推薦
  • C/C++c++ 單線程實現同時監聽多個端口

    c++ 單線程實現同時監聽多個端口

    這篇文章主要介紹了c++ 單線程實現同時監聽多個端口的方法,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數使用

    詳解c語言中的 strcpy和strncpy字符串函數使用

    strcpy 和strcnpy函數是字符串復制函數。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
  • C/C++C/C++經典實例之模擬計算器示例代碼

    C/C++經典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關于C/C++經典實例之模擬計算器的相關資料,文中通過示...

    jia150610152021-06-07
  • C/C++C語言實現電腦關機程序

    C語言實現電腦關機程序

    這篇文章主要為大家詳細介紹了C語言實現電腦關機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
  • C/C++學習C++編程的必備軟件

    學習C++編程的必備軟件

    本文給大家分享的是作者在學習使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下...

    青山的青6062022-01-04
  • C/C++深入理解goto語句的替代實現方式分析

    深入理解goto語句的替代實現方式分析

    本篇文章是對goto語句的替代實現方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網7342020-12-03
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內存中的數據都是暫時的,當程序結束時,它們都將丟失,為了永久性的保存大量的數據,C語言提供了對文件的操作,這篇文章主要給大家介紹了關于C語言中文件...

    針眼_6702022-01-24
主站蜘蛛池模板: 调教校花浣肠开菊 | 亚洲国产精品久久卡一 | 色cccwww| 色哟哟在线资源 | 国产午夜亚洲精品一区网站 | 香蕉久草 | 四虎在线精品免费高清在线 | 欧美日韩一区二区三区免费 | 天天噜| 日本在线看免费 | 亚洲国产精品热久久 | 欧美成人tv在线观看免费 | 国产区成人综合色在线 | 青青在线观看 | 爱情岛论坛亚洲品质自拍视频 | 成人福利| 91理论片午午伦夜理片久久 | 98精品全国免费观看视频 | 国产裸露片段精华合集链接 | 俺去俺去啦最新官网在线 | 美女扒开胸罩露出奶 | 好男人资源免费播放 | 久久视频在线视频 | 32d乳白色的奶罩未删除 | 日韩欧美综合在线二区三区 | 亚洲网站在线看 | 亚洲成a人不卡在线观看 | 99久热只有精品视频免费看 | 91国内精品久久久久怡红院 | 日本免费在线观看 | 精品四虎 | 嗯啊视频在线 | 欧美第十页 | 亚洲 欧美 日本 国产 高清 | 精品久久久久亚洲 | 国产精品成人亚洲 | 美女脱得一二净无内裤全身的照片 | eeuss免费快捷 | 欧美ⅹxxxx视频 | 羞羞视频动漫 | 热99re久久精品精品免费 |