#include <stdio.h> int main(void) { struct node { int a; int b; int c; }s = {3,4,5}; // struct node s = {3,4,5}; struct node *ptr = &s; printf("%d",*(int *)ptr); return 0; }
#include <stdio.h> void foo(int b[][3]) { ++b; b[1][1] = 9; } int main(void) { a[3][3] = {{3,4,5},{4,5,6},{7,8,9}}; foo(a); printf("%d",a[2][1]); return 0; }
#include <stdio.h> int main(void) { int a,b,c,d; a = 3; b = 5; a = c,d; b = (c,d); printf("%d\n",c); printf("%d",d); return 0; }
#include <stdio.h> int main(void) { int a[][3] = {1,2,3,4,5,6}; int (*ptr)[3] = a; printf("%d %d\n",(*ptr)[1],(*ptr)[2]); ++ptr; printf("%d %d",(*ptr)[1],(*ptr)[2]); return 0; }
第一:說明此數組是個n行3列的數組;ptr是指向含有三個整型的指針,那麼ptr = &a[0],(*ptr)[1]=&a[0][1];一次類推;node
int *f1(void) { int x = 12; return &x; //errortype } int *f2(void) { int *ptr; *ptr = 10; return ptr; //errortype } int *f3(void) { int *ptr; ptr = malloc(sizeof *ptr); return ptr; } #include <stdio.h> int main(void) { int i = 3; int j; j = sizeof(++i + ++i); printf("i = %d j = %d\n",i,j); return 0; } #include <stdio.h> void e(int); int main(void) { int a = 3; e(a); putchar('\n'); return 0; } void e(int n) { if(n > 0) { e(--n); printf("%d",n); e(--n); } }
#include <stdio.h> void f(char **); int main(void) { char *argv[] = {"ab","cd","ef","gh","ij","kl"}; f(argv); return 0; } void f(char **p) { char *t; t = (p += sizeof(int))[-1]; printf("%s\n",t); }