《C和指针》——数组的奇怪形式

来源:互联网 发布:淘宝服装的平铺和挂拍 编辑:程序博客网 时间:2024/05/18 00:11

ap是一个指针名array是一个数组名
1. ap[-1]
负值的下标,下标引用就是间接访问表达式,只要把它转换为那种形式并对它进行求值。ap如果指向第3个元素(就是那个下标值 为2的元素),所以使用偏移量-1就是得到它的前一个元素,也就是array[1]。
2. ap[6] 反这个下标表达式转换为与其对应的间接访问表达式形式,其实就是*(ap+6)。
3. 2[array] 表示*(2+(array))

下面是测试代码,帮助理解

#include <iostream>using namespace std;int main(){    int array[10];    for (int i = 0; i < 10; ++i){        array[i] = i;    }    cout << "array: ";    for (int j = 0; j < 10; ++j){        cout << array[j] << " ";    }    cout << endl;    int *ap = &array[3];    cout << "*ap: " << *ap << endl;    cout << "ap[-1]: " << ap[-1] << endl;    cout << "ap[6]: " << ap[6] << endl;    cout << "*ap: " << *ap << endl;    cout << "2[array]: " << 2[array] << endl;    return 0;}

运行结果:
这里写图片描述

0 0
原创粉丝点击