C 语言中的好基友 数组和指针之四

来源:互联网 发布:EF值simpson算法 编辑:程序博客网 时间:2024/06/16 23:28

今天看到CoolShell.cn上面一个关于数组指针的例子,拿过来运行下,我的确是有些醉了。。

#include <stdio.h>int main(){    int a[5]={1,2,3,4,5};    printf("1..%d\n", a[1]);            printf("2..%d\n", *(a+1));          printf("3..%d\n", *(1+a));          printf("4..%d\n", 1[a]);  //这个也能行??      //int 3[b]= {1,2,3};  //尝试这么变态的声明数组,编译器报错了,看来这种写法只能在表达式中存在        printf(&"abcdefg..%c\n"[2],"abcdefg\n"[2]); //把这种奇怪的表示方法应用到这里也是可以滴!      printf(&"abcdefg\n"[2]);    printf(&2["abcdefg\n"]);    return 0;}

看看运行结果是否和你想的一样?

./aa1..22..23..24..2cdefg..ccdefgcdefg



同时附上我的Makefile供懒人copy&paste&run

cat Makefile print:aa./aaaa: aa.ogcc -o aa aa.oaa.o: aa.cgcc -c aa.ccat aa.c#include <stdio.h>int main(){int a[5]={1,2,3,4,5};printf("1..%d\n", a[1]);printf("2..%d\n", *(a+1));printf("3..%d\n", *(1+a));printf("4..%d\n", 1[a]);//int 3[b]= {1,2,3};printf(&"abcdefg..%c\n"[2],"abcdefg\n"[2]);printf(&"abcdefg\n"[2]);printf(&2["abcdefg\n"]);return 0;}



0 0