C语言指针
最近在温习C语言,只是一些小感悟,用来自己记忆,也希望对大家也有点帮助
int *ip;
声明一个指针,在我的理解,就是说明*ip为int类型
在函数定义中 char s[] 和char * s是等价的
今天看到一个有趣的东西:用来访问数组元素的ptr[3]其实只是*(ptr + 3)的缩写,与用*(3 + ptr)是等价的,因此反过来与3[ptr]也是等价的,使用3[ptr]是完全有效的代码。--惊呆了。。。
下面是我在vc2010上做的小测试
1 int _tmain(int argc, _TCHAR* argv[]) 2 { 3 int a[]={1,2,3,4}; 4 int b =a[2]; 5 int c =2[a]; 6 printf("%d\n%d",b,c); 7 while(true) 8 { 9 } 10 return 0; 11 }
结果完全正常