首页 > 其他分享 >C语言学习【Typedef】

C语言学习【Typedef】

时间:2022-11-24 19:55:21浏览次数:42  
标签:char Typedef int typedef C语言 学习 ARR PTR define

C语言允许为一个数据类型起一个新的别名,就像给人起“绰号”一样。

Typedef可以为int起个绰号为Money

typedef int Money;
Money=0;

这就是typedef的基本用法既:

typedef 旧名 新名;

这与#define相反:#define 绰号 内容,当然原理也和define不一样。

typedef更倾向于代入后替换

char str[3][30];
typedef char (*PTR_TO_ARR)[30];
PTR_TO_ARR parr = str;
-------------------------------------------------
可以理解为
char (*PTR_TO_ARR)[30]=str;
然后将PTR_TO_ARR替换为parr
char (*parr)[30]=str;

  然后就是类似的用法,如struct

typedef struct lib{int a;float b;} *Typ;
Typ k;
k->a=0;

  在函数中的应用

typedef int (*def)(int,int);
int func(int a,int b){
return a>b?a:b;
}
int main(){
def hello=func;
int a=hello(5,10);
return 0;
}

---------------------------------------------------------------------

和define的区别

#define max(a,b) (a>b?a:b)
a=3*max(5,4)
-----------------------------------------------
可以理解为
 a=3*(5>4?5:4)

define是针对于编译器的,可以替换任何,而typedef只能够替换类型。

---------------------------------------------------------------------------

总结:typedef属于是取名,而define属于是替换。

标签:char,Typedef,int,typedef,C语言,学习,ARR,PTR,define
From: https://www.cnblogs.com/kitcat/p/16923041.html

相关文章

  • PHP基础学习
    PHP基础学习在php中,.表示字符串连接符echo"1111111111"."2222222222"."333333333<br/>";print"1111111111"."2222222222"."333333333<br/>";......
  • 网安学习-HTML
    一、HTML概述及发展史二、互联网原理三、开发工具的使用四、HTML骨架DTD|关于html标签|字符集|视口标签|浏览器私有设置|title标签|keywords关键字 |des......
  • 基于深度学习的AI绘画为何突然一下子火了?
    CLIP|Midjourney|dreamstudio AIGC|StableDiffusion |Imagen随着Disco、Midjourney、dreamstudio、AIGC、StableDiffusion、Imagen、深度学习、高性能计算、数据......
  • 时间序列 工具库学习(18)adtk模块-异常类型
    1.异常类型异常是一个广义的概念,它可以指代时间序列中许多不同类型的事件。根据具体情况,价值飙升、波动性转变、违反季节性模式等都可能是异常的或正常的。ADTK提供了一组......
  • 机器学习 数学基础 学习笔记 (5)常见统计量
    1.期望离散型随机变量的一切可能的取值xi与对应的概率Pi(=xi)之积的和称为该离散型随机变量的数学期望(设级数绝对收敛),记为E(x)。随机变量最基本的数学特征之一。它反映随机......
  • 数据结构——学习经验
    数据结构各位读者朋友,我是你们的好朋友IT黑铁,最近巩固一下数据结构,大部分适合我当前阶段的知识都已做了简介,而其他只列出了名字的有的是省略点到即可,有些高深的暂未研究。......
  • Blazor和Vue对比学习(进阶2.2.5):状态管理之持久化保存(3),LocalStorage和IndexedDB
    PS1:点击查看Blazor中C#和JS互操作PS2:Vue中,可以直接使用LocalStorage和IndexedDB对象,本章节案例主要以Blazor的使用为主 一、Storage对象1、浏览器内置的键值对存储。l......
  • Kafka学习
    Kafka学习一、kafka所需的命令启动kafka要先启动zookeeper,zookeeper学习可以参考bilibili的尚硅谷的教程:07_尚硅谷_zk_本地_安装_哔哩哔哩_bilibili。启动kafka需要执行......
  • Struts2学习总结
    struts2其实主要充当MVC模式的View层,主要是为了代替Servlet获取请求参数那些繁琐的操作。它提供的功能主要有如下2点:1.通过属性绑定和模型绑定来简化传统servlet需要使用req......
  • C# 如何将Word、Excel、PPT转成PDF文件(使用Spire提供的组件)学习
    第一步:新建一个winform项目,下载Spire组件dll下载Spire.Doc、Spire.XLS、Spire.Presentation,路径:工具--NuGet包管理器--管理解决方案NuGet程序包1)Spire.Doc:word转成其它......