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变量
  • 相关阅读:
    从输入url到浏览器加载过程(回答此问题的一个主干脉络)
    如何减少回流,重绘
    mac常用启动各种服务的命令
    分布式笔记搬迁
    JAVA基础
    EasyExcel引入
    mac 好用软件地址存储
    2018/4/11
    2018/04/04
    jdk各版本
  • 原文地址:https://www.cnblogs.com/hellovoidworld/p/4087117.html
Copyright © 2011-2022 走看看