一维数组和指针有什么区别呢?

来源:百度知道 编辑:UC知道 时间:2024/06/15 03:02:58
他们两个是干什么用的?

首先,数组是数组,指针是指针,两者切不可混淆。数组和指针分别是C语言中的两种不同的数据类型。
可以用指针访问的形式来访问数组,即采用间接访问操作符*来访问数组,并且在底层的实现时数组的下标访问就是转换成间接访问来访问的,所以有a[1]和*(a+1)的效率是一样的,因为a[1]底层的形式就是*(a+1)。
上面的一切只能说明数组下标访问可以使用间接访问一样的实现,但是两者毕竟属于不同的数据类型,数组有长度信息,你可以用 sizeof来获取数组元素所占的字节数,但是sizeof来计算一个指针的大小只是这个指针变量或者指针常量所占的内存大小

数组和指针都是编程语言中的数据类型,一般而言,指针可以指向数组的元素,所以可以用指向数组第一个元素的指针,和一个表示数组长度的整型变量,来代替数组.

一维数组的数组名就是其首地址。
比如a[10],a就是其首地址。也可以理解成他的指针。所以经常看到定义一维数组指针这样
int *p
p=a;
其实a本身就能当成指针使用了。不用引进指针也可以。但是为了定义明显所以一般会再引进一个指针。