当前位置: 首页 > news >正文

做网站的公司简介/凡科建站的优势

做网站的公司简介,凡科建站的优势,农产品电子商务网站建设要求,做网站售后几年int *p[3]与int (*p)[3]的区别 *p[3]这个是一个指针数组,它所代表的意思是数组中的每一个元素都是一个指针变量,而(*p)[3],p是一个指针变量,表示指向一个含有3个整型元素的一维数组。 View Code int i,j;int a[2][3]{3,4,5,6,7,8…

int *p[3]与int (*p)[3]的区别

*p[3]这个是一个指针数组,它所代表的意思是数组中的每一个元素都是一个指针变量,而(*p)[3],p是一个指针变量,表示指向一个含有3个整型元素的一维数组。

View Code
    int i,j;int a[2][3]={3,4,5,6,7,8}; //
    int *p[3] ;  //表示一个数组,数组中的元素是指针类型,一共有三个元素int (*q)[3]; //是一个指针,指向一个含有三个int型的数组(q+1)会跳三个数组元素//把第一行三个元素地址存放在p指针数组中for( i=0;i<3;++i)p[i]=&a[0][i];//输出指针数组中地址所对应值for( j=0;j<3;++j)cout<< *p[j]<<" ";//输出结果为:3,4,5cout<<endl;q=a;//把数组a开始地址赋给指向一维数组q;for(i=0;i<2;i++)for(j=0;j<3;j++)cout<< *(*(q+i)+j)<<" "; //输出数组中元素
system("pause");

ps:2012-5-15,参考《c++ primer》

  严格的将,c++中没有多维数组,通常所指的多维数组其实就是数组的数组,比如int arry[3][4];表示一个长度为3的数组,数组中的每个元素是一个长度为4的数组。在使用多维数组时,记住这一点有利于理解其应用。

  下面来讲讲多维数组与指针的关系。与普通数组一样,使用多维数组时,实际上将其自动转换为指向该数组第一个元素的指针。也就是说,数组的名字是一个指向该数组中第一个元素的指针,在一维数组中,arry==&arry[0],这两个地址是一样的。在二维数组中,数组名称指向第一个元素,第一个元素是一个长度为4的数组。我们定义一个指向长度为4的数组的指针 int (*p)[4],然后可以将二维数组的首地址赋值给它,p=arry。这样是可以进行赋值的。这里同样满足arry==&arry[0]。

  知道了二维数组名字与指针的关系,那么我们在进行二维数组传参的时候就会好理解很多,以前二维数组传参是一直让人头疼的问题。这里我们还是将二维数组名字作为实参来传递,在接受函数的形参中,我们只需要定义一个指向具体长度为数组的指针即可,比如我们这里使用 int (*p)[4]来接受arry这样的参数。下面给出代码实例。

View Code
#include<iostream>
#include<stdlib.h>
using namespace std;//数组名字是一个指向数组首元素的指针,这里我们定义一个指向数组的指针来接受arry
//r表示二位数组的行数,c表示二维数组的列数。
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");
}

上述一个简单的打印二维数组的简单例子,重点是二维数组的传参。

更优化的方法

在上述示例中,形参必须指明这个arry指针是指向一个长度为多少的数组,如int (*arry)[4]必须指明为4,有一定的局限性,那么有没有更好的方法呢。答案是有的。考虑到二维数组在内存中占据连续的空间这一个特性,我们可以用以为数组来表达二位数组。将上述PrintArry方法进行改写,改写结果如下:

View Code
#include<iostream>
#include<stdlib.h>
using namespace std;//传入数组的指针,二维数组的行数与列数
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);//传入数组中的第一个数组中的第一个元素的地址
system("pause");
} 

 

http://www.jmfq.cn/news/5288293.html

相关文章:

  • 阿里巴巴网站导航栏怎么做/成都百度提升优化
  • mysql做wp网站/线上推广平台报价
  • 百度对网站建设公司/公司网站如何制作设计
  • 学校网站的作用/软件推广是什么工作
  • seo上海推广公司/外贸网站如何推广优化
  • 网站建设技术合同/seo营销优化软件
  • 网站改版需求分析/百度知道登录入口
  • 男女生做恶心的网站/app推广方法及技巧
  • 企业网站 个人备案/手机app软件开发
  • 创建吃的网站怎么做/百度手机助手官网
  • 青海网站建设有哪些/学seo需要学什么专业
  • 普陀专业做网站/不属于网络推广方法
  • wordpress源码 优惠券/网站seo置顶
  • 淮北市城乡建设委员会的网站/2022十大网络营销案例
  • 服务器硬件影响网站速度/百度推广图片尺寸要求
  • lsp必备公众号/上海网站快速排名优化
  • 一流的铁岭做网站公司/武汉企业seo推广
  • 营销型企业网站系统/保定关键词优化软件
  • 合肥建行网站/网络营销教学网站
  • 德州网站建设招聘/代推广平台
  • dw软件主要做什么/qq关键词排名优化
  • 中国空间站有哪些国家加入/制作网页的基本步骤
  • 做外贸哪个英文网站好/推广产品
  • 做网站 毕业设计/链接制作
  • 六盘水建设网站/2023年重大时政热点
  • 江西网站开发科技公司/软文广告范文
  • 专门做盗文网站的公司/合肥百度推广公司哪家好
  • 普通网站可以做商城/哈尔滨seo推广
  • 网站域名备案授权书/公司网站如何在百度上能搜索到
  • 工作室有专门的网站/企业推广网络营销