请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
#include <iostream>
' z9 Q4 O6 g9 Eusing namespace std;
/ c$ |2 w: Q e! ^, wstruct student# @$ _( `9 t2 h7 S- r
{! ~# t/ E& U. d: L9 r
char name[20];
# Q0 b2 p9 U( L y6 {7 [7 B int age;
& X" B! [5 ?& {2 I' b" @}; int main( ), z4 N& q: |8 ^1 c* g0 x
{2 G4 j! n) V; w* q. u
student s;
+ ^( G! k; j8 g0 L k s.name="gyy"; //error
6 ^. D6 L1 q" t6 S* K* p# _ return 0;$ L; ]# `3 r1 @# a5 `
}, g5 i0 ]' l) k8 ?0 B4 r
道理和以下语句错误的原因一样,数组名表示常量,不允许对常量赋值,所以常量不允许出现在“=”的左边,当做左值出现。所以不能直接用字符串赋值给数组名。但请注意:可以在定义字符数组的同时用字符串给字符数组赋初值。 char name[20]="gyy"; //ok 但先定义,再赋值的方式就是错误的。 char name[20];
! |9 T- N# A; g, }; X4 {- w name="gyy"; //error 对开始的程序修改方式(1) #include <iostream>
# C/ T8 d6 L' g9 B/ vusing namespace std;
, N2 b0 v5 R; gstruct student( N& [" V% V' n- p& W# f
{" \8 m. ?; h( f% @
string name;
( u- g& i7 J/ Z5 R' u# i/ Z int age;
5 L6 [+ C: Z9 W- A5 m7 M0 U}; int main( )# G' N1 E) o4 b! \; _6 r3 y1 Y
{
- l+ d! \2 C- l. K: P! Q! Z4 g7 [ student s;
; ~4 U. b. D, a. }: t s.name="gyy"; //ok0 L" |. _1 ^3 ]# ~/ ^2 e$ U
return 0;$ `( ^8 h5 X+ j) l8 S& I" X; i" ^
} 对开始的程序修改方式(2) #include <iostream>5 q8 @& [/ m( d! l) W0 U6 d
using namespace std;
. b6 ^4 J( y$ b4 D7 n- R1 mstruct student
' w' |" ]3 e4 f8 G4 g{' d# J# g& G! n' b$ ]+ u" J/ B
char name[20];* |6 l7 n4 C; w+ Y
int age;$ F+ _. k" y% m6 F }6 N9 v
}; int main( )3 Y) j( J, z* n( D
{
1 c+ \7 t6 [. I# y; Q student s;
) k6 Z$ P& X4 | strcpy(s.name,"gyy"); //ok5 K/ h! e! V7 p1 h& c2 }: c, w
return 0;: l, J8 O9 ^2 f2 ^/ d
} ?5 A1 F$ P! d' v& \3 I* Y
|