1 2 3 4 5 6 7 8 9 10 11 12 13 | void fun1(char * str) {} void fun2(char ** str) {} //~ int main(int argc, char ** argv) int main(int argc, char * argv[]) { char str1[] = "Hello, Piggy!"; char str2[][4] = "Hello, Piggy!"; fun1(str1); fun2(str2); fun2(&str1); return 0; } |
上面的snippet有错误吗?有几个?你能找出来并说出原因吗?4、5两行有区别吗?想一下,然后看gcc给出的错误信息,
还是
?
是一个一个逐次取出的,在取球的过程中就将球给排序了。
吗?是的,之所以能够先取一个黑球再取两个红球(或者相反),是因为取黑球和取红球之间是独立的。
。我是不是还可以这样考虑:先取一个红球,然后再随便取两个球,无论什么颜色,这样概率就是
有问题吗?当然!
!可是为什么呢?因为后面随便取的2个球可能包含红球,这样的话,就犯了第二个问题的错误了。
。另一种方法是从剩下的5双10只中任取1只,然后将与该只配套的手套扔掉,接着再从剩下的8只中再取1只,结果是
。呃,又不相等了……原因只在于这里的
又给两双手套排序了,而取手套本身(
)是无序的。