那么可以给函数传递的参数为三种,分别是:指针变量、变量的地址、一个数组名。在这里数组名实际上就是指向数组的首地址。 指针: 代码语言:javascript 复制 voidFun_p(int*p){};intmain(){int testArray[]={1,2,3};int*pIntArray=testArray;int iValue=10;//传递数组名Fun_p(testArray);//传递指针变量Fun...
由此可见,C语言对数组的处理,实际上是转换成指针地址的运算。 数组与指针暗中结合在一起。因此,任何能由下标完成的操作,都可以用指针来实现,一个不带下标的数组名就是一个指向该数组的指针。 4.指针与多维数组 用指针变量可以指向一维数组,也可以指向多维数组。但在概念上和使用上,多维数组的指针比一维数组的指针...
由数组和指针的上述区别引出了它们的之间的另一个区别:访问方式不同;由于数组名直接代表其身份(数组在内存中的地址),而指针需要间接才能知道自己的身份(通过读取其保存的地址),所以它们的对于自己”财富“的访问方式自然就不同了,数组为直接方式,而指针位间接访问。通过下面几幅图来说明,数组和指针对于自身元素的访问...
数组:数组是用于储存多个相同类型数据的集合。 指针:指针相当于一个变量,但是它和不同变量不一样,它存放的是其它变量在内存中的地址。 二、赋值、存储方式、求sizeof、初始化等 1.赋值 同类型指针变量可以相互赋值,数组不行,只能一个一个元素的赋值或拷贝 2.存储方式 数组:数组在内存中是连续存放的,开辟一块连...
区别:C语言把内存划分成四个区,它把一般的变量和数组等存在于内存中的栈区,所以数组在C语言的定义中只是一组同类型的普通变量,即使这个变量有可能是指针。所以他的作用比指针小的很多,而指针可以指向任何区的任何数据,所以就会觉得指针和数组名很像,但是必须要注意的是,数组名只是指针中的一种,...
5 相信大家已经知道了数组名和指针的相同的地方;下面说下不同的地方:数组名相当于 类型* const p;普通指针是 类型* p;也就是说,数组名a只有“可读权限”,没有“可写权限”,是指针常量。a++; a = p; 等等均是不可以的。而普通指针是可以的。注意事项 注意区分指针和数组名的区别和联系 ...
所以说数组名其实是种特殊的指针。 但它俩自身又有不同,指针本身是一个对象,在内存中是为其分配了空间的;但数组名在内存空间中没有分配到空间(这将导致&a操作的效果可能和预想的不大一样)。 3|0数组名a、数组名取地址&a、数组首元素地址&a[0]、指向数组首元素的指针*p a既然是种特殊的指针,那么其打印...
指针就是在多个房间里放了一个地址(这东西很大,需要很多个房间才能放得下),通过指针拿到放的地址可以去找目标房间(内存)。数组表示我需要一个能放n个地址或值(引用类型存放地址,值类型直接存放值)的连续房间,数组名的变量中存储的就是这些连续房间的第一个的地址。纯手打,谢谢 ...
sizeof(a)是4,和指针大小一样,而不是40。而a[1] a[2]用起来和数组一样。这里的a是指针,还是数组名? 幻の上帝 小吧主 15 这里的a是指针的名称,指称指针对象。sizeof(a)就是指针的大小。a[1]等价于*(a+1),a[2]同理。所以某些场合(显然sizeof不算)感觉“用起来一样”。若int a[10],a是数...
一.指针与数组的联系: 指针与数组是C语言中很重要的两个概念,它们之间有着密切的关系,利用这种关系,可以增强处理数组的灵活性,加快运行速度,本文着重讨论指针与数组之间的联系及在编程中的应用。 1.指针与数组的关系 当一个指针变量被初始化成数组名时,就说该指针变量指向了数组。如: ...