写一个函数,每调用一次这个函数,就会将num的值增加1

举报
念君思宁 发表于 2023/02/19 20:26:38 2023/02/19
【摘要】 写一个函数,每调用一次这个函数,就会将num的值增加1

写一个函数,每调用一次这个函数,就会将num的值增加1

在这里,咋一看感觉确实挺简单的,但思维只要是跟上,确实也是挺简单的

函数:对于初学者而言,能够看懂并且能够理解该代码的意思,我想应该没有啥大问题;

但是,对于目标遥远的笔者而言,却是远远不够的,因此,对于函数,我们要下笔要快,留足足够的空间来认识并且了解函数的标准写法:函数体,函数声明,函数调用,函数的定义等部分,都需要我们认真去思考,去认识!

写一个函数,每调用一次这个函数,就会将num的值增加1

首先,我们知道这个要求是写一个函数,每调用一次,num的值都会增加1;但是对于增加1,该如何实现,优先级?,指针?,数组?等,可能都会是该要求的前提;

下面来看笔者所写代码;进供参考

#include <stdio.h>
void add(int* p)
{
	(*p)++;
}
int main()
{
	int num = 0;
	add(&num);
	printf("num=%d\n", num);   //num=1
	add(&num);
	printf("num=%d\n", num);     //num=2
	add(&num);
	printf("num=%d\n", num);   //num=3
	return 0;
}

在这里面用了指针(大概运用,具体内容,笔者也没有学习,浅浅借阅),”()“与“++”的优先级顺序,取地址“&”符号的应用,函数的写法,等内容。

运行的结果为:

 确实符合题目要求!

但是在函数体部分用了void  表示无输出值,不用有return返回值问题,

但是,对于:

void add(int* p)
{
	(*p)++;
}

这一部分,由于“++”的优先级较高,如果去掉前面的括号,将会输出错误结果........

对于部分读者的不相信,笔者进行尝试一下就知道结果

 在这里,三次的输出结果都是num=0;原因就是因为优先级问题。

文章中用了取地址符号,还有指针类型

取地址是因为:对于num的地址是不会变化的,然后取地址以后,传给函数部分,函数部分用指针来接收地址

至于其他具体原因,由于笔者也是小白一个,梦想着变成大超人,笔者也在不断地进行学习,学习,在学习的过程,因此,笔者相信,在之后不久的文章中,将会有着对指针部分的涉及。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。