如何使指针指向第二个数组中的字符

How to make pointers to chars in the second array

本文关键字:数组 字符 第二个 何使 指针      更新时间:2023-10-16

我有一个字符数组。n为数组长度

    char tab[n];
    cin.get(tab, n);
    cout<<tab<<""<<endl;

然后创建第二个数组

char* t = new char[n];
for(int i = 0; tab[i] != ''; i++){
    t[i] = tab[i]; 

}

我希望有指向相应元素的指针。我的意思是t[2]包含tab[2]的地址。然后我想对数组t进行排序,这样tab就保持原样,只有t会进行洗牌但当我对数组t进行更改时,例如

t[2] = 'a';

I loose t[3]t[4]....

编辑:

do{
    for(int i = 0; i < n -1; i++){
        if(t[i] > t[i+1]){
            char* x = &t[i];
            t[i] = t[i+1];
            t[i+1] = *x
        }
        n--;
    }
}while(n>1);

我希望有指向相应元素的指针。我的意思是t2包含tab2的地址

那么试试这个:

char** t = new (char*)[n];
for(int i = 0; tab[i] != ''; i++){
    t[i] = tab+i; // or `&(tab[i])`

根据tab值对t数组进行排序,使用*t[i]访问t数组的位置i中存储的字符值。

可以在这里和这里看到关于C指针的好教程。