黑马程序员技术交流社区

标题: 指针与数组 [打印本页]

作者: Turingchang    时间: 2016-7-19 22:31
标题: 指针与数组
1.一个数组arr[4]的名字arr就代表这个数组的地址,代表该数组第0个元素的地址。arr+i代表该数组第i个元素的地址。
2。arr[1]代表arr数组的第1个元素,而arr代表数组的地址所以声明一个指针变量int*p= arr,p[i]也可以代表arr数组的第i个元素,等价于*(p+i)。
作者: 堕落天使    时间: 2016-7-19 22:32
挺不错的,继续整理
作者: gdutyong    时间: 2016-7-20 00:11
不错!!!!!!
作者: wangxiaopang    时间: 2016-7-20 00:34
arr[1]代表数组的第一个元素,这句话说出来让人该怎么理解,知道数组的角标是从0开的还好,不然你数数组第一个元素的地址,这是啥,第一个,前面还有第0个,感觉这么说很容易让人误解啊,可不可以说代表下标为1的元素的地址
作者: HEBEIREN    时间: 2016-7-20 17:49
arr【1】,表示的应该是数组的第二个元素吧?
作者: 18222929637    时间: 2016-7-20 19:43
确实有点说错了啊,i=1是第二个元素啊,下次要注意了。还有,在c的内部数组char arr[]实质应该就是char *arr吧,有没有说错?
作者: Turingchang    时间: 2016-7-20 22:43
wangxiaopang 发表于 2016-7-20 00:34
arr[1]代表数组的第一个元素,这句话说出来让人该怎么理解,知道数组的角标是从0开的还好,不然你数数组第一个 ...

谢谢你给的意见 ,确实不太严谨
作者: Turingchang    时间: 2016-7-20 22:46
18222929637 发表于 2016-7-20 19:43
确实有点说错了啊,i=1是第二个元素啊,下次要注意了。还有,在c的内部数组char arr[]实质应该就是char  ...

char arr[]跟char *arr应该是不一样的,char arr[]定义的数组是在栈区的,里面的数据可以修改,char *arr是在常量区的,里面的数据只能读取,不能修改。
作者: 行路难    时间: 2016-7-21 16:25
不错!继续加油!!!!!
作者: 18222929637    时间: 2016-7-21 19:41
Turingchang 发表于 2016-7-20 22:46
char arr[]跟char *arr应该是不一样的,char arr[]定义的数组是在栈区的,里面的数据可以修改,char ...

说的对,忘了还有这个区别了,不错不错。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2