【问题标题】:C++ Dynamic Arrays [duplicate]C ++动态数组[重复]
【发布时间】:2014-04-12 10:52:10
【问题描述】:

谁能解释这些行之间的区别?
其中:char ** d_array,我无法预测这些行的结果。从来没有真正理解 C++ 中的指针,也没有找到任何可以解释这些行的教程。

提前致谢!

• d_array + 2
• *(d_array+ 2)
• *(d_array+ 2) + 1
• *(*(d_array+ 2) + 1)
• d_array[1][1]
• *(d_array[1]+1)

【问题讨论】:

    标签: c++ dynamic-arrays


    【解决方案1】:
    #include <iostream>
    using namespace std;
    
    int main() {
        const char* d_array[] = { "one", "two", "tree", "four" };
    
        cout << "1: " <<  d_array + 2 << endl;
        cout << "2: " <<  *(d_array+ 2) << endl;
        cout << "3: " <<  *(d_array+ 2) + 1 << endl;
        cout << "4: " <<  *(*(d_array+ 2) + 1) << endl;
        cout << "5: " <<  d_array[1][1] << endl;
        cout << "6: " <<  *(d_array[1]+1) << endl;
    }
    

    输出:

    1: 0xbfee7208
    2: three
    3: hree
    4: h
    5: w
    6: w
    

    http://ideone.com/XjVYsg 看看它的实际效果

    【讨论】:

    • THX @EdHeal,我自己当然在 IDE 上搞定了!
    • 感谢您的回答!
    猜你喜欢
    • 1970-01-01
    • 2018-06-04
    • 1970-01-01
    • 1970-01-01
    • 2018-03-12
    • 1970-01-01
    • 2016-05-25
    • 2018-02-06
    • 2016-03-23
    相关资源
    最近更新 更多