VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1465|回复: 10

标准C有没有引用类型

[复制链接]

1

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-2-7 13:30:01 | 显示全部楼层 |阅读模式
我有一个函数void f(int &a){
a+=1;

}
我想在 f中将a的值+1,而 不用指*a作为参数 ,可以用上办法吗?编译 通不过的 .有什么办法呢?
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-4-4 09:15:01 | 显示全部楼层
这个函数本身定义的有问题,地址符不能做形参,&是一个运算符,不是变量类型,有下面两种方法:
1)用指针作为参数
void f(int *a){
(*a)+=1;
}
2)依靠返回值
int f(int a){
a+=1;
return a;
}
回复

使用道具 举报

0

主题

10

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
发表于 2020-5-12 08:45:01 | 显示全部楼层
显然没有撒
回复

使用道具 举报

0

主题

2

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-8-16 22:45:01 | 显示全部楼层
可以用指针
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-8-17 00:00:01 | 显示全部楼层
没有 。 引用其实是某种意义上的安全的指针
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-8-17 01:00:01 | 显示全部楼层
在C中引用只能用指针,&是C++里的东西
回复

使用道具 举报

0

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-8-17 12:00:01 | 显示全部楼层
搂主的标题就回答了问题
回复

使用道具 举报

1

主题

39

帖子

27.00

积分

新手上路

Rank: 1

积分
27.00
发表于 2020-8-17 12:45:01 | 显示全部楼层
void f(int a){
*(int*)a +=1;

}

c的做法
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-8-17 22:00:01 | 显示全部楼层
C语言中没有引用
引用是C++的东东

C中所有的&表示取地址或者是运算符.
回复

使用道具 举报

0

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-8-18 19:15:01 | 显示全部楼层
引用都是通过指针访问,只不过编译器帮你做了& 和* 运算,在C中不用*a作为参数实现不了你的目的
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表