(三)c语⾔之typedef与struct详细⽤法typedef⽤法
typedef作⽤:为⼀种数据类型取⼀个别名(简化复杂的类型声明)
typedef int t1;
typedef char t2;
int main()
{
t1 a = 88;
t2 b = 'p';
printf("a=%d b=%c\n", a, b);
}
struct⽤法
struct Node: 代表结构体的⼀种数据类型
// 定义结构体的同时定义变量t1
struct Node
{
int data;
char *p;
} t1;
t1.data; // 使⽤
// t1是变量
// 定义结构体之后再定义变量t1
struct Node
{
int data;
char *p;
};
struct Node t1; // 使⽤前定义
struct Node t2;
t1.data; // 使⽤
t2->p;
// 定义结构体,但不定义结构体名字Node
struct
{
int data;
char *p;
}t1, t2;
// 只需要t1 t2两个变量,后⾯不需要⽤结构体名定义其它变量时可以这样操作,但是后⾯没法定义新的变量
t1.data;
t2->p;
typedef 与 struct结构体
typedef 给结构体定义别名
// typedef 定义struct Node 结构体类型
typedef struct Node
{
int data;
char *p;
} t1;
// 此时t1是结构体类型, 类似于int , char
// typedef给struct Node取的别名t1,
t1 stu; // t1是结构体类型,使⽤前先定义⼀个变量stu
stu.a;
注:
struct data {} t1; // t1是变量c语言struct头文件
typedef struct data {} t1; // t1是结构体类型
typedef 与函数指针
typedef char (*Func) (int, int)
typedef 定义了Func类型, Func类型为指向某种函数的指针,这种函数以char为返回值,int为参数⽤法: 返回类型 (*新类型) (参数表)
#include <iostream>
#include <string>
using namespace std;
int GetMax(int a, int b)
{
return a > b ? a : b;
}
// 两种写法
typedef int (FuncA) (int, int);
typedef int (*FuncB) (int, int);
int main()
{
FuncA * a = GetMax;
FuncB b = GetMax;
int Ta = a(66, 21);
cout<<Ta<<endl;
int Tb = b(28, 86);
cout<<Tb<<endl;
return 0;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论