IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 2021.12.3 typedef和define区别 -> 正文阅读

[C++知识库]2021.12.3 typedef和define区别

1. typedef和define定义

typedef:通俗话说就是给一个类型起一个别名,例如把猫叫一个咪咪,以后碰到咪咪就知道是猫,在程序中也一样,将int * 叫为INT,那么在以下的程序中,只要碰到INT就知道它是int*,其定义格式为:typedef? ? 类型? ?别名;//注意结尾这个分号不能少。因此,上面的int*叫做INT可以表示为:? typedef? int*? ?INT;

2. define

这个是宏定义,比如,#define? pi? 3.14 //注意这个后面是没有分号的,以下程序中只要有pi都是3.14,看着只是一个替换,宏最后要进行屏蔽,用#undef。

从他们的定义看,好像感觉他两是一回事,那么到底是不是一回事?我们可以看看下面这个代码?

?这样定义一个变量时,他两意义是一样的,打印出来类型都是int *。

那如果两个变量放在一起定义呢?

?一起定义两个变量时,注意宏和typedef的区别,上面程序中的Pint? 和PINT在前面都是int*,但是打印出来的类型确实不同的。

3. 那么在结构体中是如何用typedef呢?

?分析:将struct Student重新定义为Student,这样的话在C++主函数调用时直接用Student就可以,而且在上述的程序中,我们可以直接通过stu1.id直接去访问12345,然后去修改它,那么如果我想修改stu1中的姓名"caocao"改为"cao",也可以直接这样通过 . 吗?来试一下

?这里直接报错,因此,我们在去修改字符串时,应该同数组那块一样,通过字符串拷贝函数strcpy_s,加头文件#include<string.h>,正确结果如下:

?除了这种方式,还可以通过一个指针p去指向stu1,然后通过指针的方式去访问修改里面的元素,例如还是上面这个题,将其学号修改为54321,姓名修改为"cao",有

显然,这样也是可以操作的,在这个中我们要注意 .name?前面的*p要带括号,因为 . 的优先级高于*,还可以通过如下 ->来打印:

?注意:(1)结构体普通变量如何访问其成员:结构体中成员如果是字符串,不能用=去替换,必须得用字符串拷贝函数,strcpy_s()
(2)结构体指针变量如何访问其成员:可以通过->方式,(*p).name ==? p -> name ?

? ? ? ? ? ? ? ?C语言自带解引用符号有:[ ], ->

4.?用typedef如何定义数组呢?

我们一般定义一个数组名为(整型数组):int arr[10]

在c++中用typedef定义数组有:

? ? ? ? ? ? ? ? ? ? typedef? ?int? ? ARR[10];
? ? ? ? ? ? ? ? ? ? ARR brr;//就是int brr[10];

?

5.?可以给别名再起别名 ,有
typedef int AAA;
typedef AAA BBB;

其实这个BBB就是AAA的类型,即:

?

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章           查看所有文章
加:2021-12-04 13:12:48  更:2021-12-04 13:15:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:30:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码