对于赋值,我使用名字和姓氏(字符串)并反转顺序,使用数组表示法[]的一个方法,它接受 char varible [] ,并且另一种方法做同样的事情,但不使用任何括号表示法,即[]并接受char * varible。我不知道在不使用[]和仅使用指针方法的情况下引用列表中某个字符的任何其他方法。我怎么去启动指针方法,我已经完成了数组方法? 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;
}
答案 0 :(得分: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;
}