有趣的C

#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);
}
相關文章
相關標籤/搜索