请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
#include <iostream>6 o. x4 z0 U; k, ~% x$ ^
using namespace std;
( G4 I3 O3 b6 o4 M9 l& X. c1 xstruct student
( B3 {/ e7 p7 [{
: F- }; b( i1 r! I5 f6 b char name[20];+ V6 f3 c; _: y7 g6 Q7 ^9 @7 h
int age;
, P/ W( N; G0 \/ O, n9 ? F2 H}; int main( ). k3 T/ |4 z& Q0 q4 t4 }
{
- u* D* d2 Z% w+ X, @ student s;+ u* z$ b" W4 R/ r, c _
s.name="gyy"; //error
3 |* n4 e) u, Y return 0;3 v, Z2 K/ K, y1 U* i: e
}& P* ?. a! F6 L! h8 }; B3 W
道理和以下语句错误的原因一样,数组名表示常量,不允许对常量赋值,所以常量不允许出现在“=”的左边,当做左值出现。所以不能直接用字符串赋值给数组名。但请注意:可以在定义字符数组的同时用字符串给字符数组赋初值。 char name[20]="gyy"; //ok 但先定义,再赋值的方式就是错误的。 char name[20];, Q5 ^2 `) |8 ?0 ]
name="gyy"; //error 对开始的程序修改方式(1) #include <iostream>
+ n- F+ J2 {* @2 dusing namespace std;
) w9 x1 l x4 ustruct student
( a. Z: S# ]# C) ?{
1 }7 J6 l$ o1 ~6 M- Q4 ^# R string name;
" m; W: h- M" ~$ G6 w, y int age;3 ^) x6 x/ W8 B7 x! k' o+ E* A
}; int main( ), v9 @! b( F& M" q
{; o0 i! x e! i! N. u
student s;- \: F7 O7 N) ?1 f7 x
s.name="gyy"; //ok
: V4 u- F$ p% w5 z return 0;
1 a5 Q, X1 T) b8 ]( \/ m} 对开始的程序修改方式(2) #include <iostream>
9 L% m6 h) L: @: husing namespace std;% T' D* Q; A* p4 Z
struct student) S3 f7 ^7 F. F! n0 w) r4 K
{
& Y, p4 p2 E. i/ E$ v0 w char name[20];( n4 a4 Q! T7 w) w1 D* W2 t. ]1 C1 z
int age;
* W k+ Q( ~ D5 N* v}; int main( )
9 A7 H0 ^' H5 ]$ d{' X/ S q" ]9 ?' R0 ]) M# o
student s;! `0 R* i/ @8 A. H" y* O
strcpy(s.name,"gyy"); //ok$ w; y" f# n* X0 M+ k' {3 w. Y
return 0;
/ d, f- j) d) p2 m}
1 _$ J3 f7 o" j2 I |