(源程序来自《数据结构(C语言版)》严蔚敏 清华大学出版社 第12页)
抽象数据类型Triplet的表示和实现:
typedef ElemType * Triplet;
Status InitTriplet(Triplet &T,ElemType v1,ElemType v2,ElemType v3)
{
T=(ElemType * )malloc(3*sizeof(ElemType));
if(!T) exit(OVERFLLOW);
T[0]=v1;T[1]=v2;T[2]=v3;
return OK;
}
问题1:typedef ElemType * Triplet的意思是什么? ElemType * Triplet是定义指向ElemType型的指针Triplet,
前面就加个typedef 让我费解,typedef是定义一个别名,即typedef <已定义的数据类型名> <新的数据类型名>
,那用在这里到底是什么意思,谁能帮我解释一下?
还有
typedef struct LNode
{
ElemType data;
struct LNode *next;
}*LinkList;
这里的
struct LNode
{
ElemType data;
struct LNode *next;
}*LinkList;是定义一个指向结构体LNode变量的指针LinkList,前面加个typedef 是什么意思(问题其实和上面的问
题一个性质)?
问题2:
T=(ElemType * )malloc(3*sizeof(ElemType));这一句返回分配空间的首地址并赋值给T,后面将T作为数组名,即
T[0]=v1;T[1]=v2;T[2]=v3;我想问的是数组没有定义就可以使用吗?(我知道数组名就是首地址)T只是一个首地址
而已,难道可以直接T[0],T[1]……?我在谭浩强的《C程序设计(第三版)》中没找到答案。希望有人帮我解释下?
假期没事自学《数据结构》,这个问题几天了一直没搞懂。百度搜下和你当初的问题一样,可看完你选的那个最佳答案还是不明白。昨晚弄到四点没明白很无奈,能详细讲解一下吗?我的积分太少,只能给这些了!
typedef问题(C语言)
在C语言中,typedef用以给类型取别名。例如,定义结构体Element,包含字符数组和整数age。使用typedef可以将Element结构体定义为ElementType别名。这样,我们可以在代码中用Element和ElementType互换使用。同样,可以通过typedef为指针类型取别名。例如,定义指针类型ElementPtr。使用typedef后,指针可以定义为struct El...
typedef问题(C语言)
typedef struct Element { char name[10];int age;} ElementType, *ElementPtr;【第二个问题】要注意,在C\/C++中,“T[2]”这样的表达式,不一定是数组,也可能是指针!如果T是指针,则T[2]等价于 *(T+2)。你给的例子里,指针T是有定义的(函数的第一个参数)。
c语言typedef的用法
c语言typedef的用法:C语言允许用户使用typedef关键字来定义自己习惯的数据类型名称。为基本数据类型定义新的类型名。比如跨平台时,有的机子不支持longdouble,但有需要高精度的一个类型参与计算,那就可以进行如下定义:为自定义数据类型(结构体、共用体和枚举类型)定义简洁的类型名称为数组定义简洁的类型...
C语言typedef的作用是什么?
C语言typedef的作用:1、typedef可以声明各种类型名,但不能用来定义变量。用typedef可以声明数组类型、字符串类型,使用比较方便。2、用typedef只是对已经存在的类型增加一个类型名,而没有创造新的类型。3、当在不同源文件中用到同一类型数据(尤其是像数组、指针、结构体、共用体等类型数据)时,常用typ...
关于C语言中typedef的疑问?
typedef A B;\/\/将B定义为A的同类型 typedef void (*task_f) ();\/\/这里B相当于task_f,A相当于void (*) ()这里的意思是将task_f定义为一个返回值为void的函数指针 即task_f是一个指针,指向一个0参数,返回值为void的函数
typedef用法问题
你的疑问就是C语言里面的一个参数传递的问题。举个简单的例子:include<stdio.h> void Fun1(int a){ a = 3;} void Fun2(int &a){ a = 3;} int main(){ int a = 2;Fun1(a);printf("%d\\n",a);Fun2(a);printf("%d\\n",a);return 0;} 你可以看到结果,调用函数Fun1之后,...
一个C语言问题?
2、extern是全局变量:在C语言下默认的全局变量前都隐藏的加了该关键字,只是我们平常看到的没有这个extern关键字而已。问题8:什么是全局变量和局部变量?1、全局变量:对全局变量直接修改会失败,通过间接修改也会失败,因为全局变量是放在常量区,受到了保护;2、局部变量:对局部变量直接修改也会失败,...
C语言链表typedef问题,最后两句typedef定义什么意思
typedef 类型定义阿,将strutct student 取个别名Std,声明变量的时候就用 Std a;就不用写struct student a;下面的也是,将 Std* 取个别名 List。std* a,就可以写成 List a了。
在C语言中typedef是什么意思?干什么用的?
在C语言中,`typedef`是一个关键的特性,它的主要作用是创建新的类型别名。通过使用`typedef`,程序员可以为已存在的基本数据类型如`int`或`float`定义一个更直观、更易理解的名字。例如,`typedef int INTERGER;` 或 `typedef float REAL;`,这样的声明相当于为`int`类型创建了一个新的名字`...
在c语言中typedef是什么意思?干什么用的?
在C语言中,typedef是一个关键字,主要用于创建类型别名。一、基本含义 typedef在C语言中用于为已有的数据类型定义一个新的名字,这样可以在代码中使用这个新的名字来声明变量,使得代码更易于理解和维护。例如,可以定义一个新的整数类型名称,如`MyInt`,来代替内置的`int`类型。二、使用场景 1. 简化...