如何解决我是C语言的新手,我不确定指针如何工作
我是C语言的新手,我不确定指针的工作方式。指针在此示例中的行为如何,程序甚至在做什么?每当a [size-1]大于0时,它是否将值存储在pos中?
Exception in thread "main" java.lang.NoClassDefFoundError: com/mongodb/MongoOptions
at com.mongodb.casbah.MongoOptions$.<init>(MongoOptions.scala:40)
at com.mongodb.casbah.MongoOptions$.<clinit>(MongoOptions.scala)
at com.mongodb.casbah.BaseImports.$init$(Implicits.scala:154)
at com.mongodb.casbah.Imports$.<init>(Implicits.scala:141)
at com.mongodb.casbah.Imports$.<clinit>(Implicits.scala)
at com.mongodb.casbah.MongoClient.apply(MongoClient.scala:218)
解决方法
它计算数组a中的负,正条目以及零个数。
stat(a,size-1,neg,zer,pos);
它使用递归来实现目标。假设size = 10,则该函数将用
调用 stat(a,9,pos);
由于size
不等于0
(将不会输入第一个if
),因此将调用else
部分。这将一直发生,直到变成size == 0
。即
stat(a,8,pos);
stat(a,7,pos);
...
stat(a,pos);
以stat
为0调用size
时,neg
,zer
,pos
的值将设置为0,因为{{1} }变为真实。然后退出该函数,并返回到该函数调用之后的行
if
即
stat(a,pos);
这里。它检查数组 if (a[size-1] < 0)
*neg = *neg + 1;
else if (a[size-1] == 0)
*zer = *zer + 1;
else
*pos = *pos + 1;
(否定条目)或a[size-1] < 0
还是a[size-1] == 0
(即肯定条目)的元素。即数字是正,零还是负。然后,使用指针分别对正(else
),负(pos
)或零(neg
)计数器进行递增。 zer
指向指针中存储的值。要了解有关指针的基础知识,请参见this reference
由于将指针传递给调用,因此所有函数调用中的*zer
指向相同的内存,因此,最新值可用于所有调用。
假设数组中的所有数字均为正,则* pos值将如下所示:
对于*pos
,size=0
将是*pos
对于0
,size=1
将是*pos
(即*pos +1
)
...
对于0+1
,size=N
将是*pos
(将是*pos +1
)
类似于 @John Bollinger 所指出的评论,它类似于
N-1+1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。