next up previous contents
Next: 指標比較 Up: 指標 Previous: 空指標   Contents   DYWANG_HOME

指標算術

  1. 指標是記憶體位址,是一個數字,所以可以做 ++, --, +, - 等運算。
    int *ptr, *p;
    ptr++;
    ptr--;
    p = ptr-1;
    p = ptr+1;
    
  2. 範例:指標遞增
    [dywang@dyw219 zzz]$ vim pointer3.c
    [dywang@dyw219 zzz]$ cat pointer3.c
    #include <stdio.h>
    
    main () {
    	int var[]={11, 22, 33, 44};
    	int i, *ptr;
    
    	ptr=var;
    	for ( i=0; i<sizeof(var)/sizeof(int); i++, ptr++) {
    		printf( "var[%d]=%d\t&var[%d]=%x\n", i, var[i], i, &var[i]);
    		printf( "*ptr=%d\t\tptr=%x\n", *ptr, ptr);
    	}
    }
    
  3. 編譯
    [dywang@dyw219 zzz]$ gcc -o pointer3 pointer3.c
    
  4. 執行結果
    [dywang@dyw219 zzz]$ ./pointer3
    [dywang@dyw219 zzz]$ ./pointer3
    var[0]=11	&var[0]=e55f9d10
    *ptr=11		ptr=e55f9d10
    var[1]=22	&var[1]=e55f9d14
    *ptr=22		ptr=e55f9d14
    var[2]=33	&var[2]=e55f9d18
    *ptr=33		ptr=e55f9d18
    var[3]=44	&var[3]=e55f9d1c
    *ptr=44		ptr=e55f9d1c
    



De-Yu Wang 2021-01-11