在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1 #include <iostream> 2 #include <cstdio> 3 using namespace std; 4 5 int main(int argc, char *argv[]) 6 { 7 int a[10]; 8 int i, j, k; 9 int *p = NULL; 10 11 for (i=0; i<10; i++) 12 a[i] = i + 10; 13 14 printf("Using a...\n"); 15 for (i=0; i<10; i++) 16 printf("%d ", a[i]); 17 printf("\n"); 18 19 printf("Using p...\n"); 20 p= a + 1; 21 for (i=-1; i<9; i++) 22 printf("%d ", p[i]); 23 printf("\n"); 24 25 while(1); 26 return 0; 27 } 上例中把a+1的值(地址)赋给p后,p[-1]=*(p+(-1))=*(a+1-1)=*(a+0)=a[0]。 可见,通过指针,可以使用负数下标。但有两点要注意: a.如果下标是从负数开始的,那么下标上界也要做相应的变动 b.如果数组是动态申请的,则撤销数组所占内存时要free(a)而不是free(p),因为a才真正指向数组空间的首地址。 http://blog.csdn.net/heli007/article/details/7452628 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论