【问题标题】:C++ How do I access and modify an array with using []?C++ 如何使用 [] 访问和修改数组?
【发布时间】:2016-02-22 03:58:09
【问题描述】:

对于一个作业,我采用了一个带有名字和姓氏(字符串)的类并颠倒了顺序,一种使用数组表示法[]的方法,它接受一个 char 变量[],并且另一种做同样事情的方法,但不使用任何括号符号 ie[] 并接受 char *variable。我不知道有任何其他方法可以在不使用 [] 且仅使用指针方法的情况下引用列表中的某个字符。我将如何开始指针方法,我已经完成了数组方法?下面提供的 main.cpp 用于上下文。

我知道数组本质上是一块内存,它是数据类型大小乘以您指定的容器数量。有没有办法使用为数组分配的内存中的位位置来遍历数组?

#include <iostream>
#include <string>
using namespace std;
class Name
{
 public:
 string TheName;
 Name() { TheName=""; }
 Name(string name) { TheName=name; }
 string ReverseUsingString();
 void ReverseUsingArray(char Reversed[]);
 void ReverseUsingPtrs(char *Reversed);
 void operator =(char *name) {TheName=name;}
};
#include "NameClassImplementation.cpp" // You supply this file!
int main()
{
 Name Names[5]; Names[0] = "Ben Dover";
 Names[1] = "Chuck Roast"; Names[2] = "Jim Naysium";
 Names[3] = "Ella Quint"; Names[4] = "Justin Case";
 char reversedname1[100], reversedname2[100];

 for (int i=0; i<5; ++i)
 {
 Names[i].ReverseUsingArray(reversedname1);
 Names[i].ReverseUsingPtrs(reversedname2);
 cout << "Original Name : " << Names[i].TheName << endl;
 cout << " reversed with arrays: -->" << reversedname1 << "<--\n";
 cout << " reversed with ptrs : -->" << reversedname2 << "<--\n";
 cout << " reversed with string: -->"
 << Names[i].ReverseUsingString() << "<--\n\n";
 }
 system("pause"); return 0;
}

【问题讨论】:

  • ReverseUsingArrayReverseUsingPtrs 具有相同的参数列表。如果将数组声明符放在参数列表中,它会调整成为指针。
  • 对,但让我难过的是我的教授不希望我们在 ReverseUsingPtrs 的任何地方都使用括号,而只在 ReverseUsingArray 中使用括号,而且我不知道如何操作数组中的数据不使用任何括号的指针。
  • x[y]*(x + (y)) 完全相同

标签: c++ arrays string char


【解决方案1】:

这是一些示例代码,可以指导您完成任务。

#include <iostream>

int main()
{
    //  create an array
    int x[1] = {1}; 

    //  create a pointer that points to an adress of particular element of aforementioned array
    int *a = x+0;

    //  modify array
    *a = 3;

    //  access element of array
    std::cout<<*a;
}

【讨论】:

  • 这正是我所需要的!非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-23
相关资源
最近更新 更多