回覆列表
-
1 # 開開心心天天見1
-
2 # 使用者2334997038762628
C編譯器認為*和++是同優先順序運算子,且都是從右至左結合的。由於()的優先順序比*和++都高,所以(*q)++中的++就作用在(*q)上(即q指向的目標上)了;q++中的++作用在指標q上而與q指向的目標無關。比如有:int x,a[]={1,2,3,4,5},*q=a;x=(*q)++;//執行這一句後x=a[0]=1,a[0]=a[0]+1=2。就是說++作用在a[0]上,a[0]是q的指向目標。而q++只是讓q=a+1,即使q指向了a[1]。
c語言中%是”模運算“符,是個雙目運算子,a%b表示:a除以b取其餘數。
如:
5%3=2 因為5/3=1...2
6%3=0 因為6/3=2...0
7%3=1 因為7/3=2...1
2%3=2 因為2/3=0...2
所以,4%2的結果為0