C-Style字串操作(字元指標)

使用字元指標的好處是,可以直接使用指定運算子將一個字串常數指定給字元指標,之後重新指定新的字串常數也很方便,如果是字元陣列不能直接指定,要一個字元一個字元賦值。下面程式中使用str字元指標,不同字串常數會佔有各自的一個記憶體空間,str可改變指向的位址,所以下面str前後所指向的記憶體位址並不相同。

int main() {
    char *str = "hello"; 
    str = "world"; 
    return 0; 
}

在陣列中使用字元指標,可以更方便的處理字串,以下陣列str中的每個元素都是字元指標,各自指向一個字串常數。

#include
using namespace std; 

int main() {
    char *str[] = {"mike", "bill", "jason"}; 
    for(int i=0; i<3; i++){ 
        cout << str[i] << endl;
    }
    system("PAUSE");
    return 0; 
}

下面兩個字串陣列作用雖然類似,但意義不同:

char *str1[] = {"mike", "bill"}; 
char str2[2][5] = {"mike", "bill"};

str1使用字元指標陣列,每一個元素指向一個字串常數,假使更改某個元素的內容,該指標指向的位址就不同了,而str2則是配置連續的2x5的字元陣列空間,字串直接儲存在這個空間,每個字串的位址是固定的,使用的空間也是固定的。