解析 答案:数组是一种数据结构,用于存储相同类型的元素集合。指针是一个变量,它存储了另一个变量的内存地址。数组名可以作为指向数组首元素的指针使用,但数组名本身是一个常量指针,不能进行赋值操作。指针可以被重新赋值以指向不同的内存地址,而数组名则固定指向数组的首地址。
由此可见,C语言对数组的处理,实际上是转换成指针地址的运算。 数组与指针暗中结合在一起。因此,任何能由下标完成的操作,都可以用指针来实现,一个不带下标的数组名就是一个指向该数组的指针。 4.指针与多维数组 用指针变量可以指向一维数组,也可以指向多维数组。但在概念上和使用上,多维数组的指针比一维数组的指针...
数组:数组是用于储存多个相同类型数据的集合。 指针:指针相当于一个变量,但是它和不同变量不一样,它存放的是其它变量在内存中的地址。 二、赋值、存储方式、求sizeof、初始化等 1.赋值 同类型指针变量可以相互赋值,数组不行,只能一个一个元素的赋值或拷贝 2.存储方式 数组:数组在内存中是连续存放的,开辟一块连...
由数组和指针的上述区别引出了它们的之间的另一个区别:访问方式不同;由于数组名直接代表其身份(数组在内存中的地址),而指针需要间接才能知道自己的身份(通过读取其保存的地址),所以它们的对于自己”财富“的访问方式自然就不同了,数组为直接方式,而指针位间接访问。通过下面几幅图来说明,数组和指针对于自身元素的访问...
3.1 数组的传参 数组传参分为一维数组和多维数组。当做参数传入时会退化成指针。 一维数组: 代码语言:javascript 复制 voidFun(int a[]){;}intmain(){int testArray[]={1,2,3};Fun(testArray);return0;} 如上,当然也可以将Fun函数的参数形式定义为如下形式: ...
区别:C语言把内存划分成四个区,它把一般的变量和数组等存在于内存中的栈区,所以数组在C语言的定义中只是一组同类型的普通变量,即使这个变量有可能是指针。所以他的作用比指针小的很多,而指针可以指向任何区的任何数据,所以就会觉得指针和数组名很像,但是必须要注意的是,数组名只是指针中的一种,它是指针中只指向...
-LJ 初级粉丝 1 指针和数组的区别:指针是变量,而数组名是常量。数组的声明就是数组,指针的声明就是指针,两者不能混淆。 2楼2023-04-19 08:36 回复 扫二维码下载贴吧客户端 下载贴吧APP看高清直播、视频! 贴吧页面意见反馈 违规贴吧举报反馈通道 贴吧违规信息处理公示1...
1、数组名不是指针 我们先来推翻"数组名就是指针"的说法,用反证法。 证明 数组名不是指针 假设:数组名是指针; 则:pStr和str都是指针; 因为:在WIN32平台下,指针长度为4; 所以:第6行和第7行的输出都应该为4; 实际情况是:第6行输出10,第7行输出4; ...
所以说数组名其实是种特殊的指针。 但它俩自身又有不同,指针本身是一个对象,在内存中是为其分配了空间的;但数组名在内存空间中没有分配到空间(这将导致&a操作的效果可能和预想的不大一样)。 3|0数组名a、数组名取地址&a、数组首元素地址&a[0]、指向数组首元素的指针*p a既然是种特殊的指针,那么其打印...