前言:
一直以来,有很多地方在说到数组和指针时都会说数据就是指针,这种观点也被少儿春晚越来越多的人接受。本文将主要介绍数组和指针。是不是一样的大家自己理解。如此而已……
数组:具有固定大小和连续内存空间的相同数据集合。里面的存储的元素具有地址连续性和数据类型相同的特点。
指针:是指存放内存地址的变量。从0开始。32位系统可访问内存4g,目前64位系统可寻址内存空间为128g。(可能会更大。这个需要硬件资源的支撑。不抬杠)
数组:对数组元素进行逐个赋值。
指针:相同类型指针可以直接进行赋值。
数组:从数组的定义就可以知道。数组的内存是连续的。可以在栈上进行定义也可以通过malloc或者new等在堆上进行定义。
指针:本身是一个变量,指向其对应的类型的变量。指向的地址也是变量的地址,然后在通过该地址获取它指向变量的值。
可以通过sizeof
宏进行获得。
数组:数组的大小通过sizeof(数组名)/sizeof(类型名)获取。
指针:在32位的操作系统中为4,在64位操作系统中是8。
数组的初始化方式为:
//初始化一个双精度型数组double balance[5] = {1.0, 2.0, 3.0, 4.0, 5.0};//初始化一个二维数组int a[5][3]={ {80,75,92}, {61,65,71}, {59,63,70}, {85,87,90}, {76,77,85} };
指针的初始化方式为:
//定义一个指向整型变量的指针int *p感冒流鼻涕怎么办速效办法=new int(0) ;//定义一个指向数组的指针int *p=new int[n];//定义一个指针的指针int **pp=new (int*)[2];pp[0]=new int[6];pp[1]= new int[10];
指针数组和数组指针的定义请移步以下文章:c语言简明知识系列十一(下):指针
c/c++的传参方式可以分为传值型和传址型,传值实际上对将参数进行拷贝,在程序运行中对参数做的任何修改都是在拷贝后的变量产生的,函数退出后不会影响传入参数,传址型恰恰相反,会对原有参数进行修改。数组和指针当做参数传入时基本为引用方式,具体要看代码作者是如何使用。
数组传参分为一维数组和多维数组。当做参数传入时会退化成指针。
一维数组:
void fun(int a[]){ ;}int main(){ int testarray[]={1,2,3}; fun(testarray)幼儿园安全责任书; return 0;}
如上,当然也可以将fun函数的参数形式定义为如下形式:
void fun(int *a){ ;}
二维数组:
void fun(int (*a)[5]){ ;}int main(){ int testarray[2][5]={ {1,2,3,4,5}, {4,5,6,7,8} }; fun(testarray); return 0;}
如果函数的参数是一个指针。那么可以给函数传递的参数为三种,分别是:指针变量、变量的地址、一个数组名。在这里数组名实际上就是指向数组的首地址。
指针:
void fun_p(int *p){};int main(){ int te谁是卧底游戏starray[]={1,2,3}; int *pintarray = testarray; int ivalue = 10; //传递数组名 fun_p(testarray); //传递指针变量 fun_p(pintarray); //变量地址 fun_p(&ivalue); return 0;}
指针的指针:
void fun(int **p){ ;}in欢乐颂 txtt main(){ int testarray[5]={1,2,3,4,5}; int *pintarray = testarray; int ivalue = 10; int *tmpp = &ivalue; //传递指针变量 fun(&pintarray); //变量地址 fun(&tmpp); return 0;}
除了上面介绍外,指针还有函数指针,自然就会有指向函数的指针数组以及指向函数指针的指针。在实际使用时,这些类型的引入在指引我们灵活编程的同时也给我们带来了很大的风险,一旦出错,排除问题和解决问题的复杂度也将增加。在进行指针编程的时候需要谨慎使用。
函数和数组既有相同点,也有不各自独特之处。细思之,一些所谓函数既指针的说法需要谨慎判断。切勿人云亦云!
到此这篇关于c++数组和指针的区别与联系的文章就介绍到这了,更多相关c++数组和指针的区别内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!
本文发布于:2023-04-04 10:28:34,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/5aaa178a6f046ac705eb126ae138256d.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:C++数组和指针的区别与联系.doc
本文 PDF 下载地址:C++数组和指针的区别与联系.pdf
留言与评论(共有 0 条评论) |