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++知识库 -> 嘉明的C学习之Day14--typedef的使用、C++引用 -> 正文阅读

[C++知识库]嘉明的C学习之Day14--typedef的使用、C++引用

typedef的使用

在我们使用结构体的时候比如:struct student s要打一大串字符,感觉特别的繁琐。那么

typedef其实主要作用就是起别名,方便我们使用变量和看懂程序

#include<stdio.h>
//定义结构体的别名
typedef struct student {
	int num;
	char name[20];
	char sex;
}stu, * pstu;

typedef int Integer;//定义int的别名

int main() {
	stu s = { 1001,"xiaoming",'M'};
	printf("%d %s %c\n", s.num, s.name, s.sex);
	pstu p = &s;//等同于stu* p;
	printf("p->num=%d\n",p->num);
	Integer i = 5;
	printf("i=%d", i);
}

在这里插入图片描述
可以看到结构体经过typedef 使用起来方便了不少。同时int经过起别名也照样可以正常使用。

我们还记得讲malloc中,malloc函数传入的形参是size_t吗?
在这里插入图片描述
其实它就是经过typedef转化而来的。
那么为什么都是int要其那么多不同的别名呢?
其实这有助于别人看懂我们的程序,因为size_t就是字节的意思,而malloc中的参数就是字节。

C++引用

我们把int &a,这样把&放在前面的形式叫做引用(其实就是取地址)。
C的学习为什么要讲C++呢?因为后面就要学习数据结构了,而数据结构是经常使用引用的。
其实引用就跟我们使用指针传递一个道理
指针传递https://blog.csdn.net/Zcymatics/article/details/123079868
不过它经过封装,使用起来更加方便简单。
下面说一个程序就明白了。

#include<stdio.h>
void change(int& a) {
	 ++a;
}
int main() {
	int i = 5;
	change(i);
	printf("i=%d", i);
}

在这里插入图片描述
如果我们用C实现的话就会没那么方便,程序如下

#include<stdio.h>
void change(int* a) {
	 ++(*a);
}
int main() {
	int i = 5;
	change(&i);
	printf("i=%d", i);
}

在这里插入图片描述
同样实现了i+1,C++的引用很明显简单很多。

有人说这有什么加一点字符就完事了,但是当使用到指针的时候就可以看出差距了
程序如下:
C++写法

#include<stdio.h>
#include<malloc.h>
void modify(int* &q) {
	q = (int*)malloc(5);
	q[0] = 10;

}
int main() {
	int* p;
	modify(p);
	printf("p[0]=%d", p[0]);
}

C语言写法

#include<stdio.h>
#include<malloc.h>

void modify(int**q) {
	*q = (int*)malloc(5);
	*q[0] = 10;

}
int main() {
	int* p = NULL;
	modify(&p);
	printf("p[0]=%d", p[0]);
}

在这里插入图片描述
这样看下来是不是方便很多呢?

从上述两个例子我们可以对引用进行总结:
1.引用是C++的,使用引用传参操作时形参的类型和实参的类型一致。
例如
在这里插入图片描述
在这里插入图片描述
可以看到,圈住的地方也就是形参的类型和实参的类型都是一样的

2.引用其实就是取地址,我们学C传参改变值时是先取地址再传参。
而C++引用是传进去系统帮你取地址操作。

在这里插入图片描述

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-03 15:50:34  更:2022-03-03 15:51:05 
 
开发: 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 7:24:30-

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