为何通过cin可以为数组名赋值呢?数组地址是常量呀?大家看看代码
#include <iostream>
#include <string>
using namespace std;
int main()
{
void max_string(char str[][30],int i);
int i;
char country_name[3][30]; /*--这样赋值是错的,因为数组名是常量
country_name[0]="aaaaaaaaaaaaaa";
country_name[1]="7777777777777";
country_name[2]="BBBBBBBBBBBBBB";
*/ strcpy(country_name[0],"1adfkjasd;jf");
strcpy(country_name[1],"aaaaaaaaaaaa");
strcpy(country_name[2],"HHHHHHHHHHHHHHH"); /* 以下通过cin输入为何不报错呢? country_name[i] 也是常量呀 ? */
for (i=0;i<3;i++)
cin >> country_name[i]; max_string(country_name,3);
return 0;
}void max_string(char str[][30],int n)
{
int i;
char string[30];
strcpy(string,str[0]);
for (i=0;i<n;i++)
if (strcmp(str[i],string)>0)
strcpy(string,str[i]);
cout << endl << "the largest string is: " << string << endl;
}
就是以上的代码 /*--这样赋值是错的,因为数组名是常量
country_name[0]="aaaaaaaaaaaaaa";
country_name[1]="7777777777777";
country_name[2]="BBBBBBBBBBBBBB";
*/ /* 以下通过cin输入为何不报错呢? country_name[i] 也是常量呀 ? */
for (i=0;i<3;i++)
cin >> country_name[i];
#include <iostream>
#include <string>
using namespace std;
int main()
{
void max_string(char str[][30],int i);
int i;
char country_name[3][30]; /*--这样赋值是错的,因为数组名是常量
country_name[0]="aaaaaaaaaaaaaa";
country_name[1]="7777777777777";
country_name[2]="BBBBBBBBBBBBBB";
*/ strcpy(country_name[0],"1adfkjasd;jf");
strcpy(country_name[1],"aaaaaaaaaaaa");
strcpy(country_name[2],"HHHHHHHHHHHHHHH"); /* 以下通过cin输入为何不报错呢? country_name[i] 也是常量呀 ? */
for (i=0;i<3;i++)
cin >> country_name[i]; max_string(country_name,3);
return 0;
}void max_string(char str[][30],int n)
{
int i;
char string[30];
strcpy(string,str[0]);
for (i=0;i<n;i++)
if (strcmp(str[i],string)>0)
strcpy(string,str[i]);
cout << endl << "the largest string is: " << string << endl;
}
就是以上的代码 /*--这样赋值是错的,因为数组名是常量
country_name[0]="aaaaaaaaaaaaaa";
country_name[1]="7777777777777";
country_name[2]="BBBBBBBBBBBBBB";
*/ /* 以下通过cin输入为何不报错呢? country_name[i] 也是常量呀 ? */
for (i=0;i<3;i++)
cin >> country_name[i];
解决方案 »
- 为什么BCG界面库做的框架在Win7下无效?
- 请指导一下VC中单选按钮的用法,谢谢!!!!!
- 怎么把两个字符串 按一定格式合并成一个字符串?
- 请问如何在dll的export函数里创建一个非模式对话框
- 为什么程序启动时显示沙漏的光标,而不是箭头呢?
- [求助]请问删除用webbrowser打开的网站的cookie
- 你对VC的掌握如何?热心参与者都有分!!!
- 用windows2000的组件服务注册新组件服务后,如何在其它机器上访问组件?
- 有用过MP3ENC。OCX或MP3PLAY。OCX的吗?请教一下怎么用?能详细点吗?
- CListCtrl插入CButton,CEdit等控件
- 这个是为什么呢?
- 动态库中读取数据库 用过的进来看看
把country_name[i]看成是一个char [30]的字符串就对了
对于二维数组
a[1]="asdfasdf" 会报错,因为a[1]是第2行数组的首地址。但是:
cin >> a[1];
却不报错,我不知为什么?
for(int i=0;i<30;i++)
{
str[i]='a';}来操作的,所以cin可以对它赋值