c
#include <stdio.h> int main() { int a[10]={1,2,3,4,5,6,7,8,9,10}; for (int i = 0; i < 10; ++i) { printf("%d ",a[i]); } printf("%\n"); for (int j = 0; j < 10; ++j) { printf("%d ",j[a]); } return 0; }
第二个 for
循环中 j[a]
这么写居然是对的,原理是什么?
想到了delete [] ptr
,不知道是否有关系?
a是指针,是一块内存的地址值,
j[a]=*(j+a)=*(a+j)=a[j]
中,关于a[j]==j[a]?在StackOverFlow
有一帖: With C arrays, why is it the case that a[5] == 5[a] ?。指针是
危险
的,诚如楼上所言,编译器经常不会报错,非法访问内存,或者读到的值和目标值不同,对于程序来说就是错的,但语法角度上又是正确的,我没有工程经验,感觉大多数指针的错误是逻辑错误/手抽打错。---
楼主为什么会想到
delete [] ptr
?想到什么?