通过下标访问string对象或vector对象时,返回的是该位置上第n个元素(字符)的引用,那么这些下标 即str[n]和v[n]和数组下标一样是指针吗,还是仅仅是引用?
通过下标访问string对象或vector对象时,返回的是该位置上第n个元素(字符)的引用,那么这些下标 即str[n]和v[n]和数组下标一样是指针吗,还是仅仅是引用?
收起
指针是变量,引用是别名
比如,int a=0;
然后我定义指针和引用
int *p=&a;
int &b = a;
此时p是a的地址,同时&p是指针变量p的地址,所以此时&p和&a是不一样的,只是通过 *p可以访问a的值。
然而对于引用b,此时b就是a,&b就是&a,b的值也是a的值。
所以返回引用,就是返回这个数组元素本身,下标只要求访问值,也不要求改变地址,因而不需要再使用指针去指向。
一旦使用指针,那一定是操作地址
报告相同问题?