OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3037|回复: 13

简单的c语言运用疑惑,指针做函数参数问题

[复制链接]

24

主题

113

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2019-11-8
在线时间
62 小时
发表于 2019-12-13 15:05:48 | 显示全部楼层 |阅读模式
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

175

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1327
金钱
1327
注册时间
2019-7-11
在线时间
165 小时
发表于 2019-12-13 16:41:43 | 显示全部楼层
你应该是这个意思
int n,m;
input(%n, &m);
啃一啃书吧
世界和平
回复 支持 1 反对 0

使用道具 举报

3

主题

808

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3877
金钱
3877
注册时间
2017-3-7
在线时间
1692 小时
发表于 2019-12-13 17:53:56 | 显示全部楼层
int *a=0;表示a这个指针地址是0, 也就是NULL,同理b一样,对NULL地址进行操作是不对的。
你应该定义成普通整形变量,int a,再input(&a,..)这样传参。
回复 支持 1 反对 0

使用道具 举报

24

主题

113

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2019-11-8
在线时间
62 小时
 楼主| 发表于 2019-12-13 19:23:02 | 显示全部楼层
a5820736 发表于 2019-12-13 17:53
int *a=0;表示a这个指针地址是0, 也就是NULL,同理b一样,对NULL地址进行操作是不对的。
你应该定义成普 ...

以前看到过指针做参数,所以想试试。这可以解决吗??
回复 支持 反对

使用道具 举报

24

主题

113

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2019-11-8
在线时间
62 小时
 楼主| 发表于 2019-12-13 19:23:52 | 显示全部楼层
礼拜天真好 发表于 2019-12-13 16:41
你应该是这个意思
int n,m;
input(%n, &m);

是的,这样可以实现,但是我不明白为什么在这儿指针没法做函数参数
回复 支持 反对

使用道具 举报

24

主题

113

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2019-11-8
在线时间
62 小时
 楼主| 发表于 2019-12-13 19:29:08 | 显示全部楼层
难道是因为我直接定义的指针未指定 其实其内存为NULL,在执行input(int *,int *)时传入的都是两个空指针??是这样理解吗????
回复 支持 反对

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7464
金钱
7464
注册时间
2015-1-15
在线时间
1368 小时
发表于 2019-12-13 21:12:07 | 显示全部楼层
搞来搞去都不定义个实体变量,你这玩野指针啊
一分耕耘一分收获。
回复 支持 反对

使用道具 举报

17

主题

587

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4467
金钱
4467
注册时间
2013-6-27
在线时间
565 小时
发表于 2019-12-14 08:25:01 | 显示全部楼层
151l 发表于 2019-12-13 19:29
难道是因为我直接定义的指针未指定 其实其内存为NULL,在执行input(int *,int *)时传入的都是两个空指针? ...

没错,指针没有指向,就使用,系统迟早崩溃
让我们的思维驾驭在电的速度之上!
回复 支持 反对

使用道具 举报

8

主题

293

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1001
金钱
1001
注册时间
2018-8-16
在线时间
327 小时
发表于 2019-12-14 10:12:54 | 显示全部楼层
指针做参数肯定是可以的,我自己就经常这样干。
1,你的指针没有初始化,就是说指向没有意义的地址。
2,你在函数内对指针的访问是把输入的数放到"指针变量本身"上面,而不是放到"指针所指的地址"里面。
3,先去学学C/C++基础。
回复 支持 反对

使用道具 举报

6

主题

1127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1656
金钱
1656
注册时间
2019-8-15
在线时间
102 小时
发表于 2019-12-14 10:34:32 | 显示全部楼层
帮顶                              
成功没有捷径
回复 支持 反对

使用道具 举报

24

主题

113

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2019-11-8
在线时间
62 小时
 楼主| 发表于 2019-12-15 11:11:09 | 显示全部楼层
yklstudent 发表于 2019-12-13 21:12
搞来搞去都不定义个实体变量,你这玩野指针啊

对对对,是我眼拙了
回复 支持 反对

使用道具 举报

24

主题

113

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2019-11-8
在线时间
62 小时
 楼主| 发表于 2019-12-15 11:14:33 | 显示全部楼层
brucewoo 发表于 2019-12-14 10:12
指针做参数肯定是可以的,我自己就经常这样干。
1,你的指针没有初始化,就是说指向没有意义的地址。
2, ...

哈哈哈 scanf在这里似乎就是这样用的哈,scanf(“。。”,地址);
还是谢谢你的回复
回复 支持 反对

使用道具 举报

24

主题

113

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2019-11-8
在线时间
62 小时
 楼主| 发表于 2019-12-15 11:15:03 | 显示全部楼层
DongInker 发表于 2019-12-14 08:25
没错,指针没有指向,就使用,系统迟早崩溃

好的,明白了 谢谢
回复 支持 反对

使用道具 举报

64

主题

446

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1032
金钱
1032
注册时间
2017-7-26
在线时间
275 小时
发表于 2019-12-16 09:03:04 | 显示全部楼层
你这里应该传递,&n与&m,指针是一种数据类型,你形参是指针,那应该传递指针的指针
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-21 18:07

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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