作业帮 > 综合 > 作业

我是新手,个人对于一维数组和指针的理解话有些多,有错的地方请指出,

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/17 03:50:38
我是新手,个人对于一维数组和指针的理解话有些多,有错的地方请指出,
a[5] = {1,3,4,5,6}
代表指针常量a保存了5个元素中第一个元素的地址,并告诉a指针常量数组共有5个元素,并且这5个元素的分配是连续的,每个元素的字节大小一样,名字以a指针为基础添加各自的顺序下标,那么*(a+1),就代表a所存放的a[0]的地址加1,就是a[1],而不是说加1个字节,也就是a所指向的变量的第二个四个字节的变量,因为a是int型,所以保存的是整型变量地址,但他只保存第一个元素的首地址,因为这样就能够确定a到底指向几个字节为一个变量了,所以他指向的变量占4个字节,那么加1就是第二个4个字节变量的地址,并且a所存放的地址不能改变,只能是a[0]的地址,这样才能确保,整个数组的正确性.
如果利用函数输出一维数组,它的原理和a是相同的,等于是把a定义的的这个过程重新写了一遍
如下:
primer (int* p,int len)
,
我是新手,个人对于一维数组和指针的理解话有些多,有错的地方请指出,
”因为a是int型,所以保存的是整型变量地址 “ 感觉这句话有点问题,不是a是int型的,你定义一个int型的数组a[m],数组里面的数据类型是int,数组名a代表的是一个指针,它指向第一个a【0】数组的地址.数组是根据定义的类型来确定它+1是过几个字节的,因为int是4个字节,所以每加一就是地址的值加四,例如a[0]地址是1001,a[1]的地址就是1005、,.