数组指针是: 指向数组的指针,它本质上还是一个指针,类比普通指针 指针数组是: 一个存放指针的数组,本质上是数组,就如经常说的字符数组,整型数组一样 1.1 数组的理解 数组本质上只是编译器在内存空间上开辟的一连串的内存 而代表数组的变量其实只是这一连串内存空间的第一个元素的内存地址。 所以当你给编译器看一个...
数组不是指针,指针也不能说是数组。在C语言中,指针仅在内存中代表一个地址,而数组是许多连续的内存块,多个类型相似的元素存储在其中。更深入的解释,请参考我之前的博文《C语言内存地址》。在C语言的绝大多数情况下,数组被当作指针来处理,这也是使人困惑的地方。 数组表示法vs指针表示法 数组被当作指针来处理,具...
数组名的本质上是指向数组中第一个元素的指针常量,也可以说是一个指向自己地址的指针常量。它的类型取决于数组元素的类型,如果它们是int类型,那么数组名的类型就是"指向init的指针常量"。请不要根据这个事实得出数组名和指针是相同的结论,数组名在某些场合具有和指针完全不同的特征。也就是说,数组名是一个特殊指针...
在使用上很像指针,但数组名并不是指针,见下面的分析*///再次说明a是指针,而不是数组名a = NULL;//编译通过,a是指针类型。(而不是数组名,数组名不能作为左值)}voidfunc2(charb[])//b被编译成一个指针,与数组小大有没有被指定无关。{ printf("In func2:sizeof(b) = %d\n",sizeof(b));//b退...
C语言中数组和指针是一种很特别的关系,首先本质上肯定是不同的,本文从各个角度论述数组和指针。 一、数组与指针的关系 数组和指针是两种不同的类型,数组具有确定数量的元素,而指针只是一个标量值。数组可以在某些情况下转换为指针,当数组名在表达式中使用时,编译器会把数组名转换为一个指针常量,是数组中的第一个...
数组和指针本质上都代表一块内存,数组比较”直接“,数组名即代表这块内存的地址,而指针比较”含蓄“,其本身不代表任何有意义的内容,只有给它赋值后,它才真正的表示一块有意义的内存地址。这就引出了指针和数组的一个区别:定义的时机不同 ;数组在编译时就已经被确定下来,而指针直到运行时才能被真正的确定到底指向何...
【数组指针】:数组修饰指针,它的本质是一个指针;一般这个指针指向一个二维数组,形式为: int (*p)[M]。 【指针数组】:指针修饰数组,它的本质是一个数组;这个数组里面的元素,存放的都是指针,形式为: int *p[M]。 如上定义中,第一个M表示二维数组的列数,第二个M表示的指针数组(一维数组)的元...
数组是一段连续的内存,除了定义数组变量,也会用指针来表示数组,但是数组和指针不是完全相同的,数组有很多特性,例如数组有确定数量的元素,而指针只是一个标量值。 编译器用数组名来记住这些属性,只有当数组名在表达式中使用时,编译器才会认为它产生一个指针常量(不是指针变量,数组名的值是指针常量,详见C和指针P142...
可以说没有指针就没有数组。这里只是浅显的介绍自己的一点理解,并不涉及很深的专业知识点,望见谅。小编毕竟知识有限,不足之处,望批评指正。工具/原料 电脑 C语言编程环境 认识1 1 首先想必大家都已经知道了数组、指针最基本的概念了吧。不知道,也没关系,我在这里稍微提一下啦。数组是C语言中一种复合数据...
搞清楚此点之后呢,我们就可以继续来讲了,其实呢,指针数组本身就是个数组,只不过呢,它里面存放的数据类型不是int,也不是char这类基本类型,而是一个指针类型,说白了就是地址,所以叫指针数组! 记住:是存放指针的数组! 那么理解这个之后,数组指针也一样的道理,它呢本质是个指针,只不过是指向一个一维数组的指针,也...