请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
×
#include <iostream> Z2 J# A$ i+ ^" k8 [
using namespace std;
. H7 q# k1 q. Vstruct student$ L; u* V& P3 r8 J$ O7 i3 t
{: E# s* k/ c2 h2 ]
char name[20];% w1 V, Z% ?" m7 Y
int age;' v3 v3 d2 k6 y0 t9 ~* i& B
}; int main( )1 A7 l9 N( W9 [& ^4 ]
{# _* O/ N4 f! S7 B/ ]
student s;
4 W. X, @3 m; H* I; C8 |% M/ z s.name="gyy"; //error: I6 p7 M2 n, Y/ e- A
return 0; j8 y; y! e* g" Z" z
}
% v! U l0 p; d3 N- V 道理和以下语句错误的原因一样,数组名表示常量,不允许对常量赋值,所以常量不允许出现在“=”的左边,当做左值出现。所以不能直接用字符串赋值给数组名。但请注意:可以在定义字符数组的同时用字符串给字符数组赋初值。 char name[20]="gyy"; //ok 但先定义,再赋值的方式就是错误的。 char name[20];( P) G6 X5 e( `! ?! ^+ w
name="gyy"; //error 对开始的程序修改方式(1) #include <iostream>3 q& d( k0 n& M5 R. H
using namespace std;
- e j% k7 G& y# ^: w3 Nstruct student: m* H Y) A- E/ H& W3 m
{3 W+ Q/ M! d( f6 U. h! U6 X
string name;
" k; k$ x! Q% n% s! C0 y' {7 \- G int age;
9 i+ |! O8 G; O1 E}; int main( ); a- e% X* v/ x! F$ M
{
( v; Q+ U6 N4 [ student s;
6 i1 B5 v' K, j6 H$ S s.name="gyy"; //ok0 z. ^3 ?1 S$ [
return 0;
! J( A p8 z+ ~( a. o# W} 对开始的程序修改方式(2) #include <iostream>9 E% s. i* q1 d& ^
using namespace std;) C8 H& W1 K& q- h8 _7 _% s
struct student
' N1 e# } M# h" W1 J' R{
3 S# V) p6 O: P/ D: [" i) y- x. ?3 [ char name[20];- g0 X/ C% c4 r4 t3 t) z
int age;- l8 M/ r2 \+ ^- e! K1 N
}; int main( ); m5 ?; E) k, O! F& P! h
{' G. E' H( ~# }' c$ n
student s;6 k/ S2 h; c/ S, ~9 f
strcpy(s.name,"gyy"); //ok7 i6 a {5 ]( x- ^6 s. m( b" P
return 0;* k5 _" {9 N' a8 V
} / T+ G! k- F. r! w4 s1 V
|