国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C++【4】指針與引用;數(shù)組指針;指針數(shù)組

這篇具有很好參考價值的文章主要介紹了C++【4】指針與引用;數(shù)組指針;指針數(shù)組。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

/*
?? ?指針變量作為函數(shù)參數(shù)
?? ??? ?函數(shù)的參數(shù)可以是指針類型,它的作用是將一個變量的地址傳送到另一個函數(shù)中。
?? ??? ?指針變量作為函數(shù)參數(shù)與變量本身作為函數(shù)參數(shù)不同,變量作函數(shù)參數(shù)傳遞的是具體值。
?? ??? ?而指針作為函數(shù)參數(shù)傳遞的是內(nèi)存的地址
*/


#include<iostream> ?//C++ 標準輸入輸出流頭文件
using namespace std;

void swapfunc(int *p1,int *p2) ?//將地址里面的值進行交換
{
? ? int?? ?temp = 0;
?? ?temp = *p1;
?? ?*p1 = *p2; ?? ?
?? ?*p2 = temp;
}

int main()
{
?? ?int a,b;
?? ?int *pa,*pb;
?? ?cout << "請輸入 a b 的值:"<<endl;
?? ?cin ?>> a >> b ;
?? ?
?? ?
?? ?pa = &a;
?? ?pb = &b;
?? ?
?? ?if (a<b)
?? ??? ?swapfunc(p1,p2)
?? ?cout << "a=" << a ? << ",b=" << b << endl;
?? ?cout << *pa ?<< "," << *pb ? ?<<endl;
?? ?
?? ?return 0;
}

指向數(shù)組元素的指針的定義與賦值

int a[10], *p;

p =? &a[0];? //數(shù)組第一個元素的地址

p = a; //直接用數(shù)組名賦值? ?p是變量 ,a 是常量

若數(shù)組元素為int型,則指向其的指針變量也對應為int型

如: int a[10];

則:int *p = a; ????????int? *p = &a[0];? ?//這是兩種情況,且均為賦初值

通過指針引用數(shù)組元素

int a[10];

int *p =a;? //為指針變量賦初值

* p = 1;? a[0] = 1 ; //通過指針變量為數(shù)組元素賦值

C++規(guī)定,p+1指向數(shù)組的下一個元素,而不是下一個字節(jié)。

如: *(p+1) = 2;? ????????a[1] = 2;

?*++p = 2; ????????p=p+1; //指針變量也重新賦值?????????*p=2;

#include<iostream>  //C++ 標準輸入輸出流頭文件
using namespace std;

int main()
{
	 int a[5] = {12,30,66,55,22} 
	 int *p = a; //將數(shù)組的第一個元素首地址賦給指針變量p  p = &a[0]  12
	
	 cout << "a[0] =  " << *p << endl;
	  *p = 33;
	 cout  << "a[0]"  << *p <<  endl;
	 
	 cout << "結果為:" << *(p+1) << endl; // 30   
 	 
	return 0;
}

取地址與取值的區(qū)別?

#include <iostream>

using namespace std;

int main() 
{
    int  max  =   66;
    int  &remax =  max;

    cout << "max的地址是:" << &max << endl;
    cout << "remax的地址是:" << &remax <<endl;
    
    cout <<"\n\n max的值= " << max << endl;
    cout <<"remax的值= " << remax <<endl;

 return 0;
}

對引用類型的變量,說明以下幾點:

1.引用在定義的時候要初始化。

int? &remax ; // 錯誤,沒有具體的引用對象

int &remax = max ; //max是已經(jīng)定義過的變量

2.對引用的操作就是對被引用的變量的操作。

3.引用類型變量的初始化不能是一個常數(shù)。

如:int &refl = 5 ;//是錯誤的

int &refl =i;

4.引用同變量一樣有地址,可以對其地址進行操作,即將其地址賦給一指針

int a,*p;

int &m = a;? ?//&是變量的引用

p = &m;

*p = 10;? ?//&是變量的地址

5.可以用動態(tài)分配的內(nèi)存空間來初始化一個引用變量

?float &reff? =? * new? float ;? ?//用new開辟一個空間,取一個別名reff

?reff = 200;? ? ? ? ? ? ? ? ? ? ? ? ? ? //給空間賦值? ??

?cout << reff<<endl;;? ? ? ? ? ? ?//輸出200

?delete &reff;? ? ? ? ? ? ? ? ? ? ? ? //收回這個空間

6.指針與引用的區(qū)別:

(1)指針是通過地址間接訪問某個變量,而引用是通過別名直接訪問某個變量。

(2)引用必須通過初始化,而一旦被初始化后不得作為其它變量的別名。

ps:當 &a 的前面有類型符時(如int &a),它必然是對引用的聲明;如果前面無類型符(如cout<<&a),則是取變量的地址。

以下的聲明是非法的:

(1).企圖建立數(shù)組的引用? ? ? ? ? ? ? ? int &a[9];

(2).企圖建立指向引用的指針? ? ? ? int &* p;

(3).企圖建立引用的引用? ? ? ? ? ? ? ? int &&px;

7.對常量(用const聲明)的引用

void main()

{

? ? ? ? const int &r = 8;? //說明r為常量,不可賦值

? ? ? ? cout <<"r= "<<r<<endl;?

? ? ? ? //r+=15 ;? //r為常量,不可作為賦值運算

? ? ? ? cout<<"r= "<<r<<endl;?

}

8.引用與函數(shù)

引用的用途主要是用來作函數(shù)的參數(shù)函數(shù)的返回值

引用作函數(shù)的形參,實際上是在被調(diào)函數(shù)中對實參變量進行操作

void change(int &x,int &y)     // x,y是實參a,b的別名  
{
    int t; t=x; x=y; y=z;
}

void main(void)
{
    int a = 3, b = 5;
    change(a,b);          //實參為變量
    cout<< a << '\t' << b << endl; 
}

9.函數(shù)的返回值為引用類型

? ? ? ? 可以把函數(shù)定義為引用類型,這時函數(shù)的返回值即為某一變量的引用(別名),因此,它相當于返回了一個變量,所以可對其返回值進行賦值操作。這一點類同于函數(shù)的返回值為指針類型。

#include<iostream>
using namespace std;

int a = 4;
int &f(int x)   //函數(shù)返回a的引用,即a的別名
{
    a = a + x;
    return a;
}

int main(int agrc,char *argv[])
{
    int t = 5;
    cout <<f(t)<<endl;
    f(t) = 20;
    cout <<f(t)<<endl;
    t = f(t);
    cout <<f(t)<<endl; 
    return 0;
}

10.const類型常量

? ? ? ? 當用const限制說明標識符時,表示所說明的數(shù)據(jù)類型為常量類型??煞譃閏onst型常量和const型指針。

可用const限制定義標識符量,如:

const ????????int? ? ? ? MaxLine = 666;

const? ? ? ? ?float? ? ? Pi = 3.1415926;

用const定義的標識符常量時,一定要對其初始化。在說明進行初始化是對這種常量置值的唯一辦法,不能用賦值運算符對這種常量進行賦值。如:

????????????????MaxLine = 35;文章來源地址http://www.zghlxwxcb.cn/news/detail-728400.html

#include<iostream>
using namespace std;

int main(int argc,char *argv[])
{
    int a = 3,b = 5 ;     
    const int *pa = &b;       //可以不賦初值
    pa = &a;                //指針變量可以重新賦值 
    cout << *pa <<endl;     //輸出3
    // *pa = 10;            //非法,指針指向的內(nèi)容不能賦值
    a = 100 ;                //變量可以重新賦值
    cout << *pa <<endl;      //輸出100  
    
    return 0;
}

//即不可以通過指針對變量重新賦值

到了這里,關于C++【4】指針與引用;數(shù)組指針;指針數(shù)組的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 計算機語言 之【C++】入門級知識講解(命名空間,C++輸入輸出,缺省參數(shù),函數(shù)重載,引用,內(nèi)斂函數(shù),auto關鍵字,for循環(huán),指針空值nullptr)

    計算機語言 之【C++】入門級知識講解(命名空間,C++輸入輸出,缺省參數(shù),函數(shù)重載,引用,內(nèi)斂函數(shù),auto關鍵字,for循環(huán),指針空值nullptr)

    三點睡六點起,閻王夸我好身體 不到三點我不睡,太平間里搶C位 目錄: 前言: 本片博客是以學習過C語言之后進入C++學習為前提,講解C++入門級知識,為C++之后的學習做鋪墊 –?–?–?–?–?–?–?–?–?–?–?–?–?–?–?-正文開始-?–?–?–?–?

    2024年04月11日
    瀏覽(34)
  • [開發(fā)語言][c++]:左值、右值、左值引用、右值引用和std::move()

    寫在前面: 如果你也被 左值、右值、左值引用、右值引用和std::move 搞得焦頭爛額,相關概念和理解不夠深入,或者認識模棱兩可,那么這篇文章將非常的適合你,耐心閱讀,相信一定會有所收獲~~ 左值: 可以取地址、位于等號左邊 – 表達式結束后依然存在的持久對象

    2024年02月02日
    瀏覽(14)
  • 【C++】C++ 引用詳解 ⑦ ( 指針的引用 )

    【C++】C++ 引用詳解 ⑦ ( 指針的引用 )

    指針的引用 效果 等同于 二級指針 , 因此這里先介紹 二級指針 ; 使用 二級指針 作為參數(shù) , 可以實現(xiàn)如下功能 : 動態(tài)內(nèi)存管理 : 借助二級指針 , 可以在函數(shù)中分配或釋放內(nèi)存 ; 如 : 創(chuàng)建一個動態(tài)數(shù)組或調(diào)整現(xiàn)有數(shù)組的大小 , 在函數(shù)中需要一個指向指針的指針作為參數(shù) , 以便修

    2024年02月11日
    瀏覽(21)
  • 【C++】引用與指針

    【C++】引用與指針

    專欄放在【 C++知識總結 】,會持續(xù)更新,期待支持 ?? 引用的概念 在C++中,引用的本質(zhì)其實就是給一個已經(jīng)存在的變量 ”起別名“ 。也就是說, 引用與它所引用的對象共用一塊空間 。( 同一塊空間的多個名字 ) 就比如說,李逵又叫黑旋風,而黑旋風就是指李逵本人,只

    2024年02月02日
    瀏覽(21)
  • C++的指針和引用

    C++中內(nèi)存單元內(nèi)容和地址 內(nèi)存由很多的內(nèi)存單元組成,這些內(nèi)存單元用于存放各種類型數(shù)據(jù); 計算機對內(nèi)存的每個內(nèi)存單元都進行了編號,這個編號就稱為內(nèi)存地址,地址決定了內(nèi)存單元在內(nèi)存中的位置; 記住這些內(nèi)存單元地址不方便,因此C++語言的編譯器讓我們通過名字

    2024年02月06日
    瀏覽(20)
  • c++的引用和指針

    c++的引用和指針

    我們要清楚的知道,使用指針和引用都可以的傳入函數(shù)的main函數(shù)的變量在局部函數(shù)改變值時,main函數(shù)里面相應的變量也會改變值。但他倆的方式不同。 我們先來說指針,指針傳入局部參數(shù)時,他會在創(chuàng)建個局部指針變量,然后把傳入的地址賦值給局部的指針變量,然后修改

    2024年02月09日
    瀏覽(25)
  • C++[第五章]--指針和引用

    引用就是別名,引用定義時必須初始化: int a; int b=a; //b即為a的別名 如果不是形參,必須初始化,引用某一變量 指針和c一樣; this指針 在類的成員函數(shù)中使用,表示當前對象; C++11 新增了一種引用 類型 引用名 = 右值表達式; 引入右值引用如: 編譯器允許我們?yōu)?num 左值建立

    2024年02月15日
    瀏覽(23)
  • C++拾遺(四)引用與指針

    引用和指針是兩種不同的概念,盡管它們在某些方面有一些相似之處,但它們在功能和用途上是有所區(qū)別 引用:引用是別名,是對已存在變量的另一個稱呼,一旦一個變量被引用,就不能再被引用其他變 量。 int a = 10; int ref = a; ? 這里, ref ?是? a ?的引用,它們引用的是同

    2024年01月25日
    瀏覽(21)
  • C語言指針操作(七)通過指針引用字符串

    C語言指針操作(七)通過指針引用字符串

    通過指針引用字符串詳解,以及字符指針變量和字符數(shù)組的比較、 在平常的案例中已大量地使用了字符串,如在 printf函數(shù)中輸出一個字符串。這些字符串都是以直接形式 (字面形式) 給出的,在一對雙引號中包含若干個合法的字符。在本節(jié)中將介紹使用字符串的更加靈活方便

    2024年02月03日
    瀏覽(23)
  • C++中const,指針和引用

    在線C/C++編譯器,可以試著運行代碼。 在C語言中,const修飾的量稱為 常變量 (在編譯過程中,const就是當成變量的編譯生成指令的),不可以直接修改它的值,但是可以 通過地址進行修改其對應的值 。并且const修飾的變量可以不進行初始化,編譯器最后默認賦值為0。 然而在

    2024年02月13日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包