C语言调用函数指针 70
图1是我自己写的代码。图2是老师的代码。程序是为了实现指针变量值能按大小输出。对比了老师的代码,发现自己好像写的不是很规范,也好像不对的样子…请问大佬们…这样书写可以吗?...
图1是我自己写的代码。
图2是老师的代码。
程序是为了实现指针变量值能按大小输出。
对比了老师的代码,发现自己好像写的不是很规范,也好像不对的样子…请问大佬们…这样书写可以吗? 展开
图2是老师的代码。
程序是为了实现指针变量值能按大小输出。
对比了老师的代码,发现自己好像写的不是很规范,也好像不对的样子…请问大佬们…这样书写可以吗? 展开
10个回答
展开全部
不好的编码规范。
函数声明最好在main函数的前面。
老师的代码定义的swap函数传入的形参是指针变量,是固定的4个字节,比你的代码传值 程序运行更快。
函数只用来实现相应功能,这样才可以实现代码复用,不要在里面写输出语句,这样代码会大大减少复用性。
函数声明最好在main函数的前面。
老师的代码定义的swap函数传入的形参是指针变量,是固定的4个字节,比你的代码传值 程序运行更快。
函数只用来实现相应功能,这样才可以实现代码复用,不要在里面写输出语句,这样代码会大大减少复用性。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先函数声明放在main函数外,
其次zhizhen调用时,括号内不加*
最后指针函数内部,你的是传入值,你老师的是传入指针
你的zhizhen函数实际上不会交换 ab值,因为传值是传入副本
只有传入指针才会交换
其次zhizhen调用时,括号内不加*
最后指针函数内部,你的是传入值,你老师的是传入指针
你的zhizhen函数实际上不会交换 ab值,因为传值是传入副本
只有传入指针才会交换
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的程序实现不了交换的功能,因为:
void zhizhen(int a,int b)
传递的参数int a,int b为值传递,也就是系统会用两个临时变量承载你传递的变量的值,而不会把变量本身传递过去,也就是在函数中的交换行为无法传递到函数调用处。
解决方法有两个,
其一:使用指针,就是你老师的方法
其二:使用引用,也可以实现
void zhizhen(int a,int b)
传递的参数int a,int b为值传递,也就是系统会用两个临时变量承载你传递的变量的值,而不会把变量本身传递过去,也就是在函数中的交换行为无法传递到函数调用处。
解决方法有两个,
其一:使用指针,就是你老师的方法
其二:使用引用,也可以实现
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2019-02-12
展开全部
一些建议:
zhizhen函数声明应该放在main()外面,并且是在main()前面,因为C语言是顺序执行,执行main()前它必须要知道zhizhen这个函数已经存在;
实际上你的zhizhen函数执行完了,a和b并不会交换。因为参数不是指针时,传入的只是一个值,是一个副本,对于main里的ab并没有影响,而你这个看起来结果相同是因为你的输出printf写在了zhizhen里。一般学习指针就是要让你知道指针对外部的影响。
尽量不要用拼音作为函数名,变量名。
指针还需要继续加深,数据都是存储在内存中,指针*p取的是里面的数据,就是值,而指针的地址就是p是取的地址。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询