资讯动态

4.18数组名理解

发布时间:2026/9/26 8:45:38 来源:尧图企业网站定制
int main() { int a[5] {5, 4, 3, 2, 1}; int *ptr (int *)(a 1); printf( %d,%d, *(a 1), *(ptr - 1)); return 0; }看这个代码数组a中存放了五个元素数组名a是指向数组首元素a[0]的地址类型为int*a代表了整个数组的地址类型为int*[5]a1表示指针向后1偏移1个int类型大小*a1也就是取出a[1]的值就是4a1表示向后偏移一个完整数组的大小然后ptr-1就是向前偏移一个int大小这时候指向的是结果就是4和1int main() { int aa[2][5] {10,9,8,7,6,5,4,3,2,1}; int *ptr1 (int *)(aa 1); int *ptr2 (int *)(*(aa 1)); printf( %d,%d, *(ptr1 - 1), *(ptr2 - 1)); return 0; }这个程序中aa二维数组内元素的存放方式为10987654321aa1代表跳过整个二维数组指向1的末位ptr-1向前int类型大小解引用后就是1aa1表示向后偏移一个一维数组的大小也就是指向6的末位ptr2-1向前偏移一个int类型大小解引用结果就是6

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑