LoadRunner 脚本学习 -- 指针基础

先搞清楚 ++a 和 a++的区别

++a : 前缀++,  先自增,后表达式

a++ : 后缀++,  先表达式,后自增

前缀,自增立即生效。

后缀,下次才会看到效果。

 

一维数组的指针

Action(){
    int score[5]={100,98,78,55};   
    int *p=score;  
    int i;

    for (i=0;i<=4;i++) 
        lr_output_message("kkk=%d",*p++); 
    
    return 0;

}

*p++: 指针取值,并向后移一位

*(p++): 很蛋疼的理解。 ++ 是后缀,前后缀的威力最大,因此同*p++ 。 也可以这么理解,指针p++移一位,但因为是后缀,下次移动才生效,所以效果是等同于*p++

Starting action Action.
Action.c(8): kkk=100
Action.c(8): kkk=98
Action.c(8): kkk=78
Action.c(8): kkk=55
Action.c(8): kkk=0
Ending action Action.

数组申明是[5],实际只有4个数,第5个则为0.

 

*++p: ++为前缀,那就是p先移一位并立马生效的,再取数组的值

Starting action Action.
Action.c(8): kkk=98
Action.c(8): kkk=78
Action.c(8): kkk=55
Action.c(8): kkk=0
Action.c(8): kkk=81723452
Ending action Action.

 

(*p)++:  ++后缀,取指针p的值,然后这个值自增,后缀下次才生效

Starting action Action.
Action.c(8): kkk=100
Action.c(8): kkk=101
Action.c(8): kkk=102
Action.c(8): kkk=103
Action.c(8): kkk=104
Ending action Action.

 

++(*p): 取指针p的值,然后这个值自增,因为是前缀,立即生效

Starting action Action.
Action.c(8): kkk=101
Action.c(8): kkk=102
Action.c(8): kkk=103
Action.c(8): kkk=104
Action.c(8): kkk=105
Ending action Action.

 

++*p++: 结合上面的不难理解,取数组的值,指针移一位,取出来的这个值自增。  *和++优先级一样,从右往左运算

Starting action Action.
Action.c(8): kkk=101
Action.c(8): kkk=99
Action.c(8): kkk=79
Action.c(8): kkk=56
Action.c(8): kkk=1
Ending action Action.

 

二维数组的指针

Action()
{
    int erwei[2][3] = {{2,3,4},{5,6,7}};
    int (*p1)[3] = erwei;
    int i, j;

    for(i=0; i<2; i++)
    {
      for(j=0; j<3; j++) {
          lr_output_message("*(*(p1+%d)+%d) =%d",i,j,*(*(p1+i)+j));
      }
        
    }
    return 0;
}

Starting action Action.
Action.c(10): *(*(p1+0)+0) =2
Action.c(10): *(*(p1+0)+1) =3
Action.c(10): *(*(p1+0)+2) =4
Action.c(10): *(*(p1+1)+0) =5
Action.c(10): *(*(p1+1)+1) =6
Action.c(10): *(*(p1+1)+2) =7
Ending action Action.

 

int (*p1)[3]: 申明二维数组的指针,[3] 表示指针的长度,和二维数组的每组大小一致

*(p1+i):移动指针第一维度,即第几组

*(*(p1+i)+j):在指针的第一维度下,移动指针第二维度,即在那组里的第几个 

 

posted @ 2014-03-13 16:46  KK&TT  阅读(488)  评论(0)    收藏  举报
AmazingCounters.com