-3

有什么方法可以计算以下指针数组中的字数?

#include<iostream.h>        
void main()
{    
 char *city[2]={"America","England"};
 while(city[0]!='\0')
   {
       count++;
   }
  cout<<count;
}

如果一个人获得A的地址,那么它是可能的,但是如何访问美国的'A'地址。

通过执行以下所有操作,我可以获取 ptr 数组而不是 A 的地址。

 cout<<&city[0]<<endl;
 cout<<&city<<endl;
 cout<<city<<endl;
 cout<<city[0]<<endl;
 cout<<*(&city[0])<<endl;
 cout<<&(*city)<<endl;        // Question ??? Again address of ptr.

帮帮我。

4

1 回答 1

1

您可以计算字符串中的字符数,因为它以 '\0' 结尾。但是静态数组不是字符串。

您无法计算静态数组的大小。您必须引入一个变量来存储它。

如果您不想引入其他变量,我建议使用 std::vector 而不是数组:http ://en.cppreference.com/w/cpp/container/vector

#include<iostream.h>        
void main()
{    
  std::vector<char *> city(2);
  city[0] = "America";
  city[1] = "England";
  const int count = city.size();
  cout<<count;
}
于 2013-10-12T05:26:55.333 回答