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

C++ — 指針和數(shù)組的關(guān)系?

這篇具有很好參考價(jià)值的文章主要介紹了C++ — 指針和數(shù)組的關(guān)系?。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在本文中,您將了解數(shù)組與指針之間的關(guān)系,并在程序中有效地使用它們。

指針是保存地址的變量。指針不僅可以存儲(chǔ)單個(gè)變量的地址,還可以存儲(chǔ)數(shù)組單元的地址。

看以下示例:

int* ptr; // 定義指針變量ptr
int a[5];
ptr = &a[2];  // &a[2]是a[5]這個(gè)數(shù)組的第三個(gè)元素的地址。

????????假設(shè)指針需要指向數(shù)組的第四個(gè)元素,即在上述情況下的第四個(gè)數(shù)組元素的保存地址。由于ptr指向上面示例中的第三個(gè)元素,ptr + 1將指向第四個(gè)元素。您可能會(huì)認(rèn)為,ptr +1為您提供了ptr的下一個(gè)字節(jié)的地址。 但這是不正確的。這是因?yàn)橹羔榩tr是指向int的指針,并且int的大小對于操作系統(tǒng)是固定的(64位操作系統(tǒng)中int類型大小是4字節(jié))。 因此,ptr和ptr +1之間的地址相差4個(gè)字節(jié)。如果指針ptr是指向char的指針,那么ptr和ptr + 1之間的地址將相差1個(gè)字節(jié),因?yàn)橐粋€(gè)字符的大小是1個(gè)字節(jié)。

示例1:C ++指針和數(shù)組

C ++程序使用數(shù)組和指針顯示數(shù)組元素的地址


#include <iostream>

int main() {
	float arr[5]; // 定義浮點(diǎn)型數(shù)組
	float* ptr; // 定義一個(gè)浮點(diǎn)型指針變量ptr
	std::cout << "使用數(shù)組顯示地址:" << std::endl;
	for (int i = 0; i < 5; i++) {
		std::cout << "&arr[" << i << "]=" << &arr[i] << std::endl;
	}
	ptr = arr; // 將arr數(shù)組的首地址賦給指針變量ptr
	std::cout << "\n使用指針顯示地址" << std::endl;
	for (int i = 0; i < 5; i++) {
		std::cout << "ptr+" << i << "=" << ptr + i << std::endl;
	}
	
	
	return 0;
}

輸出結(jié)果為: (結(jié)果不唯一)

C++ — 指針和數(shù)組的關(guān)系?,C++,c++,開發(fā)語言

????????在上面的程序中,使用不同的指針ptr來顯示數(shù)組元素arr的地址。但是,數(shù)組元素可以通過使用相同的數(shù)組名arr來使用指針表示法來訪問。例如:

int?arr[3];

&arr[0]?等同于?arr
&arr[1]?等同于?arr?+?1
&arr[2]?等同于?arr?+?2

代碼如下:?


#include <iostream>

int main() {
	int arr[3];
	std::cout << "&arr[0]的值為:"<< &arr[0] << std::endl;
	std::cout << "arr的值為:" << arr << std::endl;
	std::cout << "&arr[1]的值為:" << &arr[1] << std::endl;
	std::cout << "arr+1的值為:" << arr +1 << std::endl;
	return 0;
}

?????????運(yùn)行上述程序,得到結(jié)果如下(結(jié)果不唯一,這是因?yàn)槊看芜\(yùn)行時(shí)給數(shù)組分配的地址不一樣):

C++ — 指針和數(shù)組的關(guān)系?,C++,c++,開發(fā)語言

?

示例2:指針和數(shù)組

C ++程序使用指針符號顯示數(shù)組元素的地址。

#include <iostream>
using namespace std;

int main() {
    float arr[5];
    
    cout<<"使用指針符號顯示地址: "<< endl;
    for (int i = 0; i < 5; ++i) {
        cout << arr + i <<endl;
    }

    return 0;
}

輸出結(jié)果:(結(jié)果不唯一)?

C++ — 指針和數(shù)組的關(guān)系?,C++,c++,開發(fā)語言

????????您知道,指針ptr保存地址,而表達(dá)式*ptr給出存儲(chǔ)在地址中的值。類似地,可以使用*(ptr + 1)獲取存儲(chǔ)在指針ptr + 1中的值。

請考慮以下代碼:

int?ptr[5]?=?{3,?4,?5,?5,?3};
  • &ptr[0]等于ptr,*ptr等于ptr[0]

  • &ptr[1]等于ptr + 1,*(ptr + 1)?等于ptr[1]

  • &ptr[2]等于ptr + 2,*(ptr + 2)等于ptr[2]

  • &ptr[i]等于ptr + i ,*(ptr + i)等于ptr[i]

驗(yàn)證代碼如下:?

#include <iostream>

int main() {
    int arr[5] = { 1,3,9,8,5 };
    int* ptr; // 定義一個(gè)int類型的指針變量ptr
    ptr = arr;
    std::cout << "arr[0]=" << arr[0] << std::endl;
    std::cout << "*ptr=" << *ptr << std::endl;
    std::cout << "arr[1]=" << arr[1] << std::endl;
    std::cout << "*(ptr+1)=" << *(ptr + 2) << std::endl;
    std::cout << "arr[2]=" << arr[2] << std::endl;
    std::cout << "*(ptr+2)=" << *(ptr + 2) << std::endl;
    return 0;
}

輸出結(jié)果:?

C++ — 指針和數(shù)組的關(guān)系?,C++,c++,開發(fā)語言

?注意:*ptr+1 與 *(ptr+1) 是有區(qū)別的,區(qū)別如下:(假設(shè)ptr指向arr數(shù)組的地址)

*ptr+1 :ptr存放的內(nèi)容是arr數(shù)組的地址,即arr數(shù)組中第一個(gè)元素的地址,*ptr存放的內(nèi)容是arr數(shù)組中第一個(gè)元素的值,則*ptr+1表示在第一個(gè)元素的值的基礎(chǔ)上加1。
*(ptr+1):同樣,ptr存放的內(nèi)容是arr數(shù)組的地址,即arr數(shù)組中第一個(gè)元素的地址,ptr+1存放的內(nèi)容是arr數(shù)組中第二個(gè)元素的地址,則*(ptr+1)存放的是第二個(gè)元素的值。

驗(yàn)證代碼如下:

#include <iostream>

int main() {
    int arr[5] = { 1,3,9,8,5 };
    int* ptr; // 定義一個(gè)int類型的指針變量ptr
    ptr = arr;
    std::cout << "arr[1]=" << arr[1] << std::endl;
    std::cout << "*(ptr+1)=" << *(ptr + 1) << std::endl;
    std::cout << "*ptr+1=" << *ptr + 1 << std::endl;
    return 0;
}

輸出結(jié)果:?

C++ — 指針和數(shù)組的關(guān)系?,C++,c++,開發(fā)語言

????????上述代碼中, arr數(shù)組為一個(gè)可以存放5個(gè)int類型數(shù)據(jù)的一維數(shù)組,且5個(gè)元素分別為:1,3,9,8,5。
????????我們定義了一個(gè)int類型的指針變量ptr,并且將arr數(shù)組的地址,即第一個(gè)元素的地址賦給ptr,則有*(ptr+1)存放的是arr數(shù)組中第二個(gè)元素3,而*ptr存放的是arr數(shù)組中第一個(gè)元素1,那么*ptr+1就為2。

示例3:C ++指針和數(shù)組

C ++程序,用于插入和顯示使用指針符號輸入的數(shù)據(jù)。

#include <iostream>
using namespace std;

int main() {
    float arr[5];

    // 使用指針符號插入數(shù)據(jù)
    cout << "輸入5個(gè)數(shù)字: ";
    for (int i = 0; i < 5; i++) {
        cin >> *(arr + i);
    }

    // 使用指針符號顯示數(shù)據(jù)
    cout << "顯示數(shù)據(jù): " << endl;
    for (int i = 0; i < 5; i++) {
        cout << *(arr + i) << endl;
    }

    return 0;
}

輸出結(jié)果:?

C++ — 指針和數(shù)組的關(guān)系?,C++,c++,開發(fā)語言文章來源地址http://www.zghlxwxcb.cn/news/detail-727944.html

到了這里,關(guān)于C++ — 指針和數(shù)組的關(guān)系?的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • [開發(fā)語言][python][c++]:C++中的this指針和Python中的Self -- 26歲生日

    以朋友的新歲祝福開篇,祝筆者也祝大家??: 之前一直對 C++ 中的 this 和 python 中的 self 到底是什么關(guān)系,為什么 C++ 要顯式的寫出來,python 則不需要? 模糊不清,趁著周末整理一下相關(guān)結(jié)論,希望本篇文章可以解答這些問題,同時(shí)對C++和Python中的類加深些理解。 python 當(dāng)

    2024年01月24日
    瀏覽(31)
  • C++【4】指針與引用;數(shù)組指針;指針數(shù)組

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

    2024年02月07日
    瀏覽(18)
  • 【C語言進(jìn)階】指針數(shù)組 —— 數(shù)組指針

    【C語言進(jìn)階】指針數(shù)組 —— 數(shù)組指針

    ?? 鴿芷咕 : 個(gè)人主頁 ??? 個(gè)人專欄 : 《C語言進(jìn)階篇》 《C語言初階篇》 ??生活的理想,就是為了理想的生活! ?? ?? hello! 各位寶子們大家好啊,前面我們已經(jīng)把指針大部分內(nèi)容給學(xué)完了,今天就給大家?guī)頂?shù)組指針or指針數(shù)組! ?? ?? 很多說這倆名字不是差不

    2024年02月14日
    瀏覽(19)
  • C語言 ——指針數(shù)組與數(shù)組指針

    C語言 ——指針數(shù)組與數(shù)組指針

    目錄 一、二維數(shù)組 二、指針數(shù)組 (1)概念 ?(2)書寫方式 (3)指針數(shù)組模擬二維數(shù)組 三、數(shù)組指針 (1)概念 (2)使用數(shù)組指針打印一維數(shù)組 ?(3)模擬二維數(shù)組的傳參 首先,我們要理解一下二維數(shù)組和指針變量之間的一些相關(guān)概念。 二維數(shù)組 : int arr [ 3 ][ 5 ]??

    2024年02月13日
    瀏覽(27)
  • C語言--指針詳解(下)--字符指針、數(shù)組指針、指針數(shù)組、函數(shù)指針、函數(shù)指針數(shù)組(轉(zhuǎn)移表)

    C語言--指針詳解(下)--字符指針、數(shù)組指針、指針數(shù)組、函數(shù)指針、函數(shù)指針數(shù)組(轉(zhuǎn)移表)

    在C語言中有一種指針類型為字符指針 char*,常用其來表示字符,使用如下: 除了上述用法之外,還可以有以下的用法: 在上面的代碼中,字符 \\\" hello word \\\"是常量字符串,將\\\"hello word\\\"放入 pstr 指針的實(shí)質(zhì)是將第一個(gè)字符 “ h \\\" 的地址傳遞給了 pstr ,通過首字符 ” h \\\" 就可以訪問

    2024年02月03日
    瀏覽(28)
  • 【go語言基礎(chǔ)】指針數(shù)組和數(shù)組指針

    (1)指針數(shù)組: 存儲(chǔ)指針的數(shù)組,也叫存儲(chǔ)地址的數(shù)組,簡單說就是存儲(chǔ)地址的。 首先它是一個(gè)數(shù)組,數(shù)組中的元素都是指針(地址)。 (2)數(shù)組指針: 首先它是一個(gè)指針,存儲(chǔ)的是指向數(shù)組的指針。 (1)指針數(shù)組 定義: 注意:首先是一個(gè)數(shù)組,將數(shù)組中的元素定義為

    2024年02月13日
    瀏覽(28)
  • 【C語言】指針的基本知識(shí)詳細(xì)講解(指針數(shù)組、數(shù)組指針、函數(shù)指針....

    【C語言】指針的基本知識(shí)詳細(xì)講解(指針數(shù)組、數(shù)組指針、函數(shù)指針....

    接著上次的函數(shù)的基本知識(shí),今天我們來講一講??指針 目錄 一、指針的概念 二、指針變量 三、野指針 四、字符指針 五、指針與數(shù)組 六、指針數(shù)組 七、數(shù)組指針 ?八、指針與函數(shù) 總結(jié) 一、指針的概念 1.1、變量和地址 所謂指針,也就是內(nèi)存的地址;所謂指針變量,也就是

    2023年04月08日
    瀏覽(23)
  • C語言:指針和數(shù)組(看完拿捏指針和數(shù)組)

    C語言:指針和數(shù)組(看完拿捏指針和數(shù)組)

    目錄 數(shù)組名的理解: 一維數(shù)組: ?解析: ?字符數(shù)組: ?解析:? ?解析: 字符串?dāng)?shù)組: ?解析:? ?解析:? 一級指針:? ?解析:? ?解析:? 二維數(shù)組: ?解析:? 指針筆試題: 題一:一維數(shù)組 題二: 結(jié)構(gòu)體指針 題三: 一維數(shù)組 題四: 二維數(shù)組 題五: 二維數(shù)組 題

    2024年02月11日
    瀏覽(23)
  • 【C語言基礎(chǔ)入門】二級指針、一維數(shù)組與指針、二維數(shù)組與指針

    【C語言基礎(chǔ)入門】二級指針、一維數(shù)組與指針、二維數(shù)組與指針

    在學(xué)習(xí)C語言的過程中,理解指針的概念是非常重要的。指針提供了一種直接訪問內(nèi)存地址的方式,使得我們可以更加靈活地管理數(shù)據(jù)和內(nèi)存。在本文中,我們將介紹C語言中的二級指針、一維數(shù)組與指針,并通過通俗易懂的語言和示例代碼來幫助讀者理解這些概念。 二級指針

    2024年02月05日
    瀏覽(29)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包