多维数组形式参数必须写成int(*mat)[10],只有第一维可以这样,必须知道第二维及以后的各维的长度才能对各下标进行求值。
函数名代表函数首地址。
回调函数:某个函数必须能够在不同的时刻执行不同类型的工作或者执行只能由函数调用者定义的工作。
只给非只读变量(可修改左值)赋值,数组名不能做左值。
arr和&arr两者的值相同,但意思不同。arr代表数组首元素地址,&arr代表数组首地址。
arr: 1.作为右值时代表数组首元素首地址,
2. 不能作为左值,不能进行整体赋值。
指针可以指向任何地方,但不是任何地方都可以通过指针访问。
定义分配内存,声明不分配。
定义出现一次,声明可出现多次。
编译器会把指针里存放的任何东西当做地址来处理。
在一个地方定义为指针,在另一个地方就必须声明为指针。
在一个地方定义为数组,在另一个地方就必须声明为数组。
指针加减数字必须要调整(即使不在数组里)。
内存是线性的。
指针和数组的联系
1. 数组的引用被转化为指针加偏移量的引用
2. .在函数形参中的表现
指针与数组的区别(主要二者的作用)
如果下次有人问你数组和指针的区别,你首先第一句要说的就是二者
没有任何关系,数组就是数组,指针就是指针,他们完全是两码事,只不过经常穿着相似的衣服迷惑我们罢了。
指针是一类特殊的变量,主要用途是函数间的传址,用这种方式来改变实参内容。而数组是用来实现线性表的结构,用于把同类对象集中在一起放置。