| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2554 人关注过本帖
标题:被线性表里的函数参数SqList L,SqList &L,SqList *L搞懵了,求大神指点 ...
只看楼主 加入收藏
asdqq
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-7-11
收藏
 问题点数:0 回复次数:1 
被线性表里的函数参数SqList L,SqList &L,SqList *L搞懵了,求大神指点
书里的用的是SqList  &L,但是上网上看下其他代码发现很多用*L,然后又说C语言里没用引用,所以用*L,但是把&L改成*L就报错,然后改着改着把&漏掉了,发现SqList L竟然没报错,所以感觉有点晕了,顺便帮忙看下代码有错么,C语言学了1个学期没用有点忘记,拜托!谢谢啦!
#include<stdio.h>
#include<malloc.h>
#define SIZE 100
typedef struct{
    int *elem;
    int length;
    int listsize;
}SqList;
void InitList(SqList &L)
{
    L.elem=(int *)malloc(SIZE * sizeof(int));
    if(!L.elem)
        printf("存储分配失败!");
    L.length=0;
    L.listsize=0;
        printf("存储分配成功!");
}
void main(SqList &L)
{
   
    InitList(L);
}
2015-07-11 10:53
vvvcuu
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:12
帖 子:353
专家分:1253
注 册:2014-4-22
收藏
得分:0 
当你没有弄明白一些基本的东西而纠结一些稍微高级点的用法的时候,你会越纠结越迷茫的.

如果对SqList L不明白的话, 那么int L,int &L, int *L这几个能说一下区别吗?

关于&是引用运算符的说法是C++中的概念,  在C中,&就只有两种用法:  逻辑与和取地址. 这两种用法的区别是一眼就能看出来的(对于刻意写的那种让人看不明白的代码没有讨论的价值, 正常人不会写那种代码的).  

对于SqList L,SqList &L,SqList *L,  首先记得SqList是指的一个结构体类型,就像int一样,是一种数据类型.
所以SqList L是定义一个结构体变量L,一般用于一段代码的开始, 或者一个函数的开始.
    SqList &L是取结构体变量L的地址, 一般用于函数参数中;
    SqList *L是定义一个结构体指针变量L,  这里要注意和SqList L的区别.

代码测试环境:  WinXP+C-Free5.0.
2015-07-27 11:57
快速回复:被线性表里的函数参数SqList L,SqList &L,SqList *L搞懵了,求大 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018716 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved