使用指针的变量名

时间:2019-04-03 18:27:34

标签: c++ pointers variable-names

我想从键盘中选择要显示的数组(我知道我的代码不起作用,我只想显示我的问题)

 int main(){
            char *a = new char[5];
            char *b = new char[5];
            char name;

            cin >> a;
            cin >> b;
            cin >> name;

            cout << name; 
}

2 个答案:

答案 0 :(得分:1)

一旦程序运行,您在代码中使用的变量名就没有意义。如果您要这样做,则不能用namea动态替换b

使示例更简单(c风格的数组绝对不适合初学者,请看std::vector),您可以这样做:

#include <iostream>
int main() {
    int a = 42;
    int b = 102;
    std::cout << "select a or b: ";
    char select;
    std::cin >> select;
    if (select == 'a') std::cout << a;
    else if (select == 'b') std::cout << b;
    else std::cout << "wrong input \n";
}

答案 1 :(得分:0)

大多数情况下,如果要具有多个相同类型的对象(例如,超过2个或3个),则应考虑使用数组或向量。

所以不是

char *a = ...;
char *b = ...;
char *c = ...;

使用

char *values[] = { ... };

现在,您可以使用索引(即整数值)来访问值。对于字符a-z,可以通过减去值'a''a'-'a'为0,'b'-'a'为1,等等)来轻松实现。

const char *values[] = { "this is a", "this is b" };

char name;
std::cin >> name;
int index = name - 'a';

// TODO: Make sure the index is in range!
const char *value = values[index];
std::cout << value;