数组到底是不是指针?这个问题隔三岔五就会被问一遍。其实只要搞清楚他们的原理,并且能熟练的使用,完全没有必要纠结这个问题。
数组是内存中的一块连续内存,之所以他能跟指针扯上关系,是因为数组名表示了数组第一个元素的地址,于是很多同学就认为数组名是指针。
准确的讲,数组名也只是个标识符,方便用户使用罢了。
把它理解成地址常量更合适一些。
所以对数组名加加这个操作,编译器是不允许的。
int array[5] = {1, 2, 3, 4, 5}; array++;但是访问元素的时候,只要你不去修改数组名,用起来跟指针没什么区别。
int array[5] = {1, 2, 3, 4, 5}; *(array + 1);
int array[5] = {1, 2, 3, 4, 5}; int *p = array; p[1]; *(p + 1);
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !