|
4 A% b& s# G3 J" {: y 首先举个例子: ! _: j7 M0 b$ _ int sum(int *start,int *end)" b3 g" |1 e5 ]. _ } { 7 U2 W) f6 K2 B& L3 H F3 q5 e" e$ t; P int total; total = *start++; }, n' h! A5 X" ~9 E8 _ 程序里有这条语句,total = *start++; 说明:一元运算符*和++具有相等的优先级,但它在结合时是从右向左进行的。这就意味着++应用于start,而不是应用于*start。也就是说,是指针自增1,而不是指针所指向的数据自增1。后缀形式(即start++,而不是++start)表示先把指针指向的数据加 到total上,然后指针自增1。如果程序使用*++start,则顺序就变成指针先自增1,然后再使用其指向的值。然而如果程序使用(*start)++,那么会使用start所指向的数据,然后再使该数据自增1,而不是使指针自增1。这样,指针所指向的地址不变,但其中的元素却变成了一个新数据。尽管*start++比较常用,但为了清晰起见,应该使用*(start++)。 , Q8 S# _6 |) y. w |
| 学习了,谢谢! |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
| 学习了,谢谢! |
| 你说的貌似不对呀,应该是先进行*运算,再++吧,不能误导吃瓜群众啊。 |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
微信公众号
手机版