美文网首页
c语言技术点

c语言技术点

作者: 海在路上 | 来源:发表于2017-12-10 19:22 被阅读5次

    占位符:

    • int–>%d
    • long int–>%ld
    • char–>%c
    • float–>%f
    • 短整形(short)–>%hd
    • double–>%lf
    • 十六进制输出–>%#x
    • 无符号(unsigned)–>%u
    • 字符串–>%s
    • 八进制–>%o
    • 确定位数的浮点型:%.4f

    指针

    指针和指针变量的区别:

    1. 指针就是内存地址。
    2. 内存地址就是内存单元的编号(存放1和0的东西)。
    3. 指针变量就是存放内存地址的变量。
        int i = 10;
        int *p;
        p = &i;
        printf("地址 = %d",p);
        printf("地址所放的值 = %d",*p);
        printf("地址所放的值 = %d",i);
        printf("地址所放的值 = %d",&i);
    

    输出

    输出

    多级指针:

        //定义一个int类型的变量,并且赋值为100
        int i = 100;
        //定义一个int类型的一级指针变量p1,并且把i的地址赋值给它 
        int* p1 = &i;
        //定义一个int类型的二级指针变量p2,并且把p1的地址赋值给它 
        int** p2 = &p1; 
        //定义一个int类型的三级指针变量p3,并且把p3的地址赋值给它 
        int*** p3 = &p2; 
        //定义一个int类型的四级指针变量p4,并且把p3的地址赋值给它 
        int**** p4 = &p3;
    
        //多级指针取值 
        printf("****p4的值%d\n",****p4); 
    

    数组

    • 定义:
    int array[] = {1,1,1,};
    int array[] = 
    

    动态分配内存:

    // 分配一个int大小的内存。
    int* temp = malloc(sizeof(int));
    // 移动分配大小
    int* array = malloc(4 * 4);
    *(array) = 1;
    *(array + 1) = 2;
    .....
    
    // 重新分配大小
    temp = realloc(temp,12);
    
    

    函数指针:

    • 返回值、参数的类型和个数
    //定义一个函数
    int add(int a,int b) {
        return a + b;
    }
    main() {
        //定义函数指针
        //返回值类型,变量名可以随便取,函数没有方法体
        int (*point)(int a,int b);
        //给函数指针赋值
        point = add;
        //使用函数指针
        int result= point(12,5);
        printf("result=%d\n",result);
        system("pause");
    }
    

    Unition联合体

    // 声明联合体的时候不能进行赋值。
    union Mix {
        long i;//4个字节
        int k;//4个字节
    };
    
    main() {
        printf("mix长度=%d\n",sizeof(union Mix)); 
        union Mix m;
        m.k=100;
        m.k=123;
        printf("m.i=%d\n",m.i);
        printf("m.k=%d\n",m.k);
        system("pause");
    }
    

    枚举

    /**
        枚举的值是递增的,首元素默认等于0 
     */
    enum WeekDay {
        Monday=1,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday
    };
    main() {
        //enum WeekDay day= Sunday;
        printf("%d\n",Sunday);
        system("pause");
    }
    

    Typedef(别名)

    • 为一个东西取一个别名。
    typedef int i;//给int类型取了个别名叫i
    typedef long l;//给long类型取了个别名叫l
    
    main() {
        //这里i就代表了int类型 
        i a=10;
        //l就代表了long类型 
        l b=1234355466;
        printf("a=%d\n",a);
        printf("b=%ld\n",b);
        system("pause");
    }
    

    结构体

    struct Student {
        int age;//年龄
        float score;//分数
        char sex;//性别
    };
    main() {
        //使用结构体,并对变量进行初始化
        struct Student stu= {18,90.9,'W'};
        printf("age=%d\n",stu.age);
        printf("score=%.1f\n",stu.score);
        printf("sex=%c\n",stu.sex);
    
        //结构体赋值
        stu.age=20;
        stu.score=100;
        stu.sex='M';
    
        printf("age=%d\n",stu.age);
        printf("score=%.1f\n",stu.score);
        printf("sex=%c\n",stu.sex);
    
    };
    

    结构体指针和多级结构体指针

    struct Student {
        int age;//年龄
        float score;//分数
        char sex;//性别
    };
    main() {
        //使用结构体
        struct Student stu= {18,90.9,'W'};
        //结构体指针
        struct Student* point = &stu;
    
        //结构体指针取值,(*point)取得是结构体
        printf("(*point).age=%d\n",(*point).age);
        //(*point).age等价于point->age;
        printf("point->age=%d\n",point->age);
        printf("point->score=%.1f\n",point->score);
        printf("point->sex=%c\n",point->sex);
    
        //结构体赋值
        point->age=22;
        printf("修改后age=%d\n",point->age);
    };
    

    http://blog.csdn.net/a_zhon/article/details/53348604

    相关文章

      网友评论

          本文标题:c语言技术点

          本文链接:https://www.haomeiwen.com/subject/mzjvixtx.html