指針—學(xué)習(xí)c/c++的第一步(第二章)

字號:

第二章。指針的算術(shù)運算
    指針可以加上或減去一個整數(shù)。指針的這種運算的意義和通常的數(shù)值的加減運算的意義是不一樣的。例
    如: 
    例二: 
    1。 char a[20]; 
    2。 int *ptr=a; 
    ... 
    ... 
    3。 ptr++; 
    在上例中,指針ptr的類型是int*,它指向的類型是int,它被初始化為指向整形變量a。接下來的第3句
    中,指針ptr被加了1,編譯器是這樣處理的:它把指針ptr的值加上了sizeof(int),在32位程序中,是被
    加上了4。由于地址是用字節(jié)做單位的,故ptr所指向的地址由原來的變量a的地址向高地址方向增加了4個
    字節(jié)。
    由于char類型的長度是一個字節(jié),所以,原來ptr是指向數(shù)組a的第0號單元開始的四個字節(jié),此時指向了
    數(shù)組a中從第4號單元開始的四個字節(jié)。
    我們可以用一個指針和一個循環(huán)來遍歷一個數(shù)組,看例子: 
    例三: 
    int array[20]; 
    int *ptr=array; 
    ... 
    //此處略去為整型數(shù)組賦值的代碼?!?BR>    ... 
    for(i=0;i<20;i++) 
    { 
    (*ptr)++; 
    ptr++; 
    }