国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

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

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

服務器之家 - 編程語言 - C/C++ - 數(shù)組指針、指針數(shù)組以及二維數(shù)組的深入解析

數(shù)組指針、指針數(shù)組以及二維數(shù)組的深入解析

2020-12-25 14:46C語言教程網 C/C++

下面來講講多維數(shù)組與指針的關系。與普通數(shù)組一樣,使用多維數(shù)組時,實際上將其自動轉換為指向該數(shù)組第一個元素的指針

int *p[3]與int (*p)[3]的區(qū)別
*p[3]這個是一個指針數(shù)組,它所代表的意思是數(shù)組中的每一個元素都是一個指針變量,而(*p)[3],p是一個指針變量,表示指向一個含有3個整型元素的一維數(shù)組。

復制代碼 代碼如下:


int i,j;
    int a[2][3]={3,4,5,6,7,8}; //
    int *p[3] ;  //表示一個數(shù)組,數(shù)組中的元素是指針類型,一共有三個元素
    int (*q)[3]; //是一個指針,指向一個含有三個int型的數(shù)組(q+1)會跳三個數(shù)組元素

 

    //把第一行三個元素地址存放在p指針數(shù)組中
    for( i=0;i<3;++i)
        p[i]=&a[0][i];

    //輸出指針數(shù)組中地址所對應值
    for( j=0;j<3;++j)
        cout<< *p[j]<<" ";//輸出結果為:3,4,5
    cout<<endl;

    q=a;//把數(shù)組a開始地址賦給指向一維數(shù)組q;
    for(i=0;i<2;i++)
        for(j=0;j<3;j++)
            cout<< *(*(q+i)+j)<<" "; //輸出數(shù)組中元素

    system("pause");


參考《c++ primer》
嚴格的將,c++中沒有多維數(shù)組,通常所指的多維數(shù)組其實就是數(shù)組的數(shù)組,比如int arry[3][4];表示一個長度為3的數(shù)組,數(shù)組中的每個元素是一個長度為4的數(shù)組。在使用多維數(shù)組時,記住這一點有利于理解其應用。

 

下面來講講多維數(shù)組與指針的關系。與普通數(shù)組一樣,使用多維數(shù)組時,實際上將其自動轉換為指向該數(shù)組第一個元素的指針。也就是說,數(shù)組的名字是一個指向該數(shù)組中第一個元素的指針,在一維數(shù)組中,arry==&arry[0],這兩個地址是一樣的。在二維數(shù)組中,數(shù)組名稱指向第一個元素,第一個元素是一個長度為4的數(shù)組。我們定義一個指向長度為4的數(shù)組的指針 int (*p)[4],然后可以將二維數(shù)組的首地址賦值給它,p=arry。這樣是可以進行賦值的。這里同樣滿足arry==&arry[0]。

知道了二維數(shù)組名字與指針的關系,那么我們在進行二維數(shù)組傳參的時候就會好理解很多,以前二維數(shù)組傳參是一直讓人頭疼的問題。這里我們還是將二維數(shù)組名字作為實參來傳遞,在接受函數(shù)的形參中,我們只需要定義一個指向具體長度為數(shù)組的指針即可,比如我們這里使用 int (*p)[4]來接受arry這樣的參數(shù)。下面給出代碼實例。

復制代碼 代碼如下:


#include<iostream>
#include<stdlib.h>
using namespace std;

 

//數(shù)組名字是一個指向數(shù)組首元素的指針,這里我們定義一個指向數(shù)組的指針來接受arry
//r表示二位數(shù)組的行數(shù),c表示二維數(shù)組的列數(shù)。
void PrintArry(int (*arry)[4],int r,int c)
{
    for(int i=0;i<r;i++)
    {
        for(int j=0;j<c;j++)
        {
            cout<<arry[i][j]<<" ";
        }
        cout<<endl;
    }
}

void main()
{
    int arry[3][4]={{1,2,8,9},{2,4,9,12},{4,7,10,13}};
    PrintArry(arry,3,4);//等價于PrintArry(&arry[0],3,4);
    system("pause");
}


上述一個簡單的打印二維數(shù)組的簡單例子,重點是二維數(shù)組的傳參。

 

更優(yōu)化的方法
在上述示例中,形參必須指明這個arry指針是指向一個長度為多少的數(shù)組,如int (*arry)[4]必須指明為4,有一定的局限性,那么有沒有更好的方法呢。答案是有的。考慮到二維數(shù)組在內存中占據(jù)連續(xù)的空間這一個特性,我們可以用以為數(shù)組來表達二位數(shù)組。將上述PrintArry方法進行改寫,改寫結果如下:

復制代碼 代碼如下:


#include<iostream>
#include<stdlib.h>
using namespace std;

 

//傳入數(shù)組的指針,二維數(shù)組的行數(shù)與列數(shù)
void PrintArry2(int *arry,int r,int c)
{
    for(int i=0;i<r*c;i++)
    {
        cout<<arry[i]<<" ";
    }
    cout<<endl;
}

void main()
{
    int arry[4][4]={{1,2,8,9},{2,4,9,12},{4,7,10,13},{6,8,11,15}};
    PrintArry2(&arry[0][0],4,4);//傳入數(shù)組中的第一個數(shù)組中的第一個元素的地址

    system("pause");
}

 

延伸 · 閱讀

精彩推薦
  • C/C++C++之重載 重定義與重寫用法詳解

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

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

    青山的青6062022-01-04
  • C/C++學習C++編程的必備軟件

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

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

    謝恩銘10102021-05-08
  • C/C++c++ 單線程實現(xiàn)同時監(jiān)聽多個端口

    c++ 單線程實現(xiàn)同時監(jiān)聽多個端口

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

    源之緣11542021-10-27
  • C/C++C語言實現(xiàn)電腦關機程序

    C語言實現(xiàn)電腦關機程序

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

    xiaocaidayong8482021-08-20
  • C/C++深入理解goto語句的替代實現(xiàn)方式分析

    深入理解goto語句的替代實現(xiàn)方式分析

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

    C語言教程網7342020-12-03
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數(shù)使用

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

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

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

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

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

    jia150610152021-06-07
  • C/C++C語言中炫酷的文件操作實例詳解

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

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

    針眼_6702022-01-24
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 国产精品亚洲第一区在线暖暖韩国 | 久久精品国产v日韩v亚洲 | 天天干天天操 | 亚洲精品一| 亚洲欧美一级 | 中文字幕不卡 | 国产精品永久免费自在线观看 | 日韩精品一区二区三区中文字幕 | 国产午夜精品久久久久久久 | 91精品久久久久久久久 | 激情综合网址 | 国产三级一区二区三区 | 精品综合久久久 | 成人国产精品久久久 | 99久久国产露脸国语对白 | 国产精品久久久久久中文字 | 欧美一级做a爰片久久高潮 免费在线毛片 | 国产中文字幕在线播放 | 亚洲国产精品一区二区www | 日韩不卡一区二区 | 久久久久综合 | 欧美亚洲精品在线 | 久久久青草婷婷精品综合日韩 | 精品综合久久 | 91视频大全| 欧美视频精品 | 日韩亚洲一区二区 | 日韩在线观看中文字幕 | 成人久久18免费观看 | 午夜在线影院 | av激情在线 | 国产最新视频 | 精品影院 | 日韩福利电影 | 亚洲成年人影院 | 亚洲成人免费在线播放 | 国产中文字幕一区 | 黄网站涩免费蜜桃网站 | 精品国内视频 | 日韩aaa视频| 精品1区2区 |