zoukankan      html  css  js  c++  java
  • [C语言

    关键字typedef

     
    typedef 操作符可以看做是普通变量和类型之间的转换开关!!
    例如
    typedef int Integer;//定义了一种类型
    int Integer;//定义了一个变量
    就是类型和变量的区别
     
    A. 对数据类型定义“别名"
    复制代码
    1 int main(int argc, const char * argv[]) {
    2     typedef int integer;
    3     integer i = 5;
    4     printf("print the int: %d
    ", i);
    5    
    6     return 0;
    7 }
    复制代码
     
    区别于宏定义的概念,typedef相当于定义了一种新的数据类型,而不是简单的别名
     
    在”别名“的基础上再定义一个别名
        typedef int integer;
        typedef integer mytype;
     
    B. typedef与指针
    1     typedef char * String;
    2     String name = "Simon”;
     
    C. typedef与结构体
    复制代码
    1     typedef struct MyPoint
    2     {
    3         int x;
    4         int y;
    5     } Point;
    6    
    7     Point p = {10, 10};
    复制代码
     
    D. typedef 结构体指针
    复制代码
     1     typedef struct
     2     {
     3         int age;
     4         char *name;
     5     } * PP;
     6  
     7 PP per1 = {11, "Tom"};//Running Error
    复制代码
     
    应该为
    复制代码
     1 int main(int argc, const char * argv[]) {
     2     @autoreleasepool {
     3         typedef struct{
     4             int age;
     5             char *name;
     6         } PP,*Person;
     7         
     8         Person p = malloc(sizeof(PP));
     9         p->age = 12;
    10         p->name = "simon";
    11         
    12         printf("%d - %s
    ", p->age, p->name);
    13     }
    14     return 0;
    15 }
    复制代码
     
     
    E. typedef 指向函数的指针
     
     
    F. #define 与  typedef 的区别
    1 typedef char * String1
    2 #define String2 char *
    3  
    4 String1 s1,s2;
    5 String2 s3,s4;
     
    ==> 其中,s1,s2,s3是char指针,s4仅仅是普通的char变量
     
  • 相关阅读:
    电子电路基础复习 —— 电阻
    Linux 网络编程(IO模型)
    Linux 2.6 源码学习-内存管理-buddy算法
    【转】MySQL性能优化的21个最佳实践
    linux 2.6 驱动笔记(三)
    linux 2.6 驱动笔记(二)
    公共代码参考(httpclient)
    linux 2.6 驱动笔记(一)
    bzoj 2401: 陶陶的难题I 数论
    bzoj 3144: [Hnoi2013]切糕 最小割
  • 原文地址:https://www.cnblogs.com/wvqusrtg/p/4501125.html
Copyright © 2011-2022 走看看