[编程开发] 请问 C 语言中 & 和 * 的用法?

[复制链接]
lihanyue 发表于 2024-1-19 23:02:55|来自:北京 | 显示全部楼层 |阅读模式
主要是数据结构用c语言实现时候
比如定义链表时:typedef struct Node{
}Node,*Linklist;
在创建函数时候这样,
int creatlist(Linklist &L){}
用这个函数时候需要这样写creatlist(L);
而定义顺序表时
typedef struct{
}List;
创立函数时候
int creatlist(List *l){}
用函数的时候
creatlist(&l);
大括号内的内容省略了.....
求大神讲解
全部回复5 显示全部楼层
wanpin 发表于 2024-1-19 23:03:54|来自:北京 | 显示全部楼层
c只有值传递,所以必须有指针~
c++有值传递,指针传递,引用传递~
d36mail 发表于 2024-1-19 23:04:01|来自:北京 | 显示全部楼层
跟你什么样的表没关系。你前一种写法是 C++ 语法,后面一种是 C 的语法。
Brian 发表于 2024-1-19 23:05:00|来自:北京 | 显示全部楼层
int creatlist(Linklist &L){}
这是从严蔚敏的书里看来的吧?
严蔚敏的《数据结构》(C语言版)是挂羊头卖狗肉,
根本不是C语言。
pic100 发表于 2024-1-19 23:05:25|来自:北京 | 显示全部楼层
c语言细节记得不太清楚了。&在c里是取地址的意思,所以由他来的都是一个指针,
而*p是个整型,p是指针。从开头的struct后那个是什么,指针?整型?记住这儿开头,后面就对应这看就好了。
nygaozhan 发表于 2024-1-19 23:05:44|来自:北京 | 显示全部楼层
泻药。
学数据结构?C语言你都没搞懂你怎么可以学数据结构?
筷子都没掌握,就想吃饭?
回去补C语言吧。有人可能会说,大哥,这是C++中的引用,不是C语言。
是啊,C++。
void f(int *p)//p是一个指针,该指针指向一个int类型的变量
void f(int &p)//这里,p是引用,不是指针,也不是取地址。引用可以理解为是别名。
void f(int* &p)你可以理解为void f(Type &p)其中p是Type类型的变量的引用,而Type,可以是int,可以是int*,可以是int**,可以是几乎任意类型。

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则