| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1822 人关注过本帖
标题:C语言中引用传递的实例,看着简单,却无法编译!
取消只看楼主 加入收藏
潺潺的小河
Rank: 2
等 级:论坛游民
帖 子:29
专家分:10
注 册:2019-3-2
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:4 
C语言中引用传递的实例,看着简单,却无法编译!
#include<stdio.h>
void sw(int& a);//(1)
void main()
{
   int  a=1;
   sw(a);
   printf("%d",a);
}
void sw(int& a)
{
  a++;
 }
 文件为“.c"形式。编译器说 (1)处有问题。请帮我看看。

搜索更多相关主题的帖子: C语言 引用 编译 void int 
2019-03-02 22:05
潺潺的小河
Rank: 2
等 级:论坛游民
帖 子:29
专家分:10
注 册:2019-3-2
收藏
得分:0 
回复 2楼 rjsp
这个文件就可以使用 引用传递。
#include"stdio.h"
#include"stdlib.h"
#define STACK_INIT_SIZE 100
#define STACKINCREAMENT 10
typedef char SElemType;
typedef struct {
    SElemType *base;
    SElemType *top;
    int stacksize;
}SqStack;

void InitStack(SqStack &s);
void Push(SqStack &s,SElemType e);
void showStack(SqStack s);
int GetLength_Stack(SqStack s);
void Pop(SqStack &s,SElemType &e);
void GetTop(SqStack s,SElemType &e);
int  StackEmpty(SqStack s);

void main()
{
   SqStack s;
   SElemType e;
   InitStack(s);
   Push(s,'s');
   Push(s,'h');
   Push(s,'g');
   showStack(s);
   GetTop(s,e);
   printf("%c",e);
   showStack(s);
}

void InitStack(SqStack &s)
{
    s.base=(SElemType*)malloc(sizeof(SElemType)*STACK_INIT_SIZE);
    if(!s.base) exit(1);
    s.top=s.base;
    s.stacksize=STACK_INIT_SIZE;
}

void Push(SqStack &s,SElemType e)
{
    if(s.top-s.base>=s.stacksize)
    {
        s.base=(SElemType*)realloc(s.base,(STACK_INIT_SIZE+STACKINCREAMENT)*sizeof(SElemType));
        s.stacksize=STACK_INIT_SIZE+STACKINCREAMENT;
    }
    if(!s.base)exit(1);
    *s.top++=e;
   
}
void showStack(SqStack s)
{
     printf("显当前顺序栈内的数据\n");
     while(s.top!=s.base)
     {
         printf("%c\t",*(--s.top));
     }
}
int GetLength_Stack(SqStack s)
{
   int num=0;
   while(s.top!=s.base)
   {
       --s.top;
         num++;
     }
   return num;  
}

void Pop(SqStack &s,SElemType &e)
{
    if(s.base==s.top)
    {
      printf("空栈\n");
      exit(1);
    }
    e=*(--s.top);
}
void GetTop(SqStack s,SElemType &e)
{
     if(s.base==s.top) exit(1);
     e=*(s.top-1);
}
int  StackEmpty(SqStack s)
{
    if(s.base==s.top)
        return 1;
    else
        return 0;
}


但是 我不知道这个文件 为什么用使用成功
2019-03-03 08:52
潺潺的小河
Rank: 2
等 级:论坛游民
帖 子:29
专家分:10
注 册:2019-3-2
收藏
得分:0 
回复 4楼 lxk1732942
C++里有引用传递概念;可以帮忙解释上面第二个C程序 为什么可以通过编译吗;因为我不能理解,就做了一个对比实验;对比试验我更迷糊了
2019-03-03 10:39
潺潺的小河
Rank: 2
等 级:论坛游民
帖 子:29
专家分:10
注 册:2019-3-2
收藏
得分:0 
回复 6楼 rjsp
".c"文件。您可以试试 我那个文件
2019-03-03 19:41
潺潺的小河
Rank: 2
等 级:论坛游民
帖 子:29
专家分:10
注 册:2019-3-2
收藏
得分:0 
回复 8楼 waterstar
我使用是visual c++ 6.0的版本   
图片附件: 游客没有浏览图片的权限,请 登录注册

没问题呀!
2019-03-04 18:39
快速回复:C语言中引用传递的实例,看着简单,却无法编译!
数据加载中...
 
   



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

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