请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
#include <iostream>' H6 ?& T$ |+ ^7 ]7 P: }$ {8 f
using namespace std;
& ~& A4 K9 y& `' Zstruct student j$ a+ F1 q2 E3 y
{
7 z7 i" M6 [" x+ E- R! N7 N8 h char name[20];& f5 w( ]! l# v O# |9 a* _8 y/ R
int age;
: P7 _* h! N2 ^7 z) @2 {2 C5 V* Z}; int main( )( ^4 _( D+ y/ D+ ?9 @
{3 X4 X0 Y0 i4 `2 |; X3 @
student s;" O, ~) s4 X5 A
s.name="gyy"; //error
3 i! Q1 G' J; r2 ] return 0;
V6 g8 K7 C6 m; W2 ]3 V}7 }/ p I7 [/ ^$ j4 p5 Z
道理和以下语句错误的原因一样,数组名表示常量,不允许对常量赋值,所以常量不允许出现在“=”的左边,当做左值出现。所以不能直接用字符串赋值给数组名。但请注意:可以在定义字符数组的同时用字符串给字符数组赋初值。 char name[20]="gyy"; //ok 但先定义,再赋值的方式就是错误的。 char name[20];+ s" J& ?: L/ v' x9 g9 Z5 b+ U
name="gyy"; //error 对开始的程序修改方式(1) #include <iostream>! d& X+ D8 e U6 y
using namespace std;
$ l: j v9 u; U# v* u5 m& Tstruct student
. e* V: C7 L; S5 n# F! _% ?% F) Q{
: S T3 c: z) u! a, k# \' E string name;
4 _7 S3 g) y& C1 g& D4 t int age;( n5 q0 w( P9 Q4 K% D+ z' C
}; int main( )
8 h5 h# _. P3 J' H{
1 c- D; B- d% d. T2 o; w student s;
2 `6 |% L3 ^$ }$ \6 M s.name="gyy"; //ok2 y/ j7 D3 |8 ^4 F0 W5 J
return 0;
Y6 s( j! E G+ H. U* U+ n( J} 对开始的程序修改方式(2) #include <iostream>
6 t* C9 p+ k9 h$ p. g7 J$ k8 h) l7 ausing namespace std;
2 x; P0 [+ a9 a0 B6 C: Rstruct student. I, Q' A; a# N% `2 C* c* n* i# V) Z4 |
{
8 f, O" V& ?* G8 N, B char name[20];
8 Y: e2 ]1 C1 W f/ S$ X2 u2 L int age;" k- k, x% Q0 d- m1 [ q! w, d
}; int main( )
. E8 @! K4 W! a0 F4 `' q; x7 W{: T8 m1 C( z! o) B6 f
student s;, K( D4 X' S7 {, y7 u
strcpy(s.name,"gyy"); //ok, h c1 c; Z2 o& `9 N$ r
return 0;
" Q# ~: R6 |% l; n* I( R f! P} 4 z' j, x: H" B0 h3 _% t3 b
|