请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
#include <iostream>7 g& g7 Y2 J; d6 L
using namespace std;, j3 g- G) H: H. W( A. p
struct student. ?* f u, G7 E$ S1 m0 }
{7 M9 X6 f3 i7 x2 i' C1 i
char name[20];! s8 N Z n6 }, k. H A! K
int age;2 F; o4 u# i; |6 W, O& `
}; int main( )
3 a; M% S: _7 A) j* W( I3 U{. M, Y; x' r$ E9 t: l0 D# M( q% S6 V( J
student s;
2 ^2 y2 @( Y5 g2 n: S G s.name="gyy"; //error
( N5 S# R, [* F) {5 P return 0;6 Q( Q/ j* l7 q" K* L: L* O
}; k! u, Z6 t( L9 Z* D8 z0 J* H
道理和以下语句错误的原因一样,数组名表示常量,不允许对常量赋值,所以常量不允许出现在“=”的左边,当做左值出现。所以不能直接用字符串赋值给数组名。但请注意:可以在定义字符数组的同时用字符串给字符数组赋初值。 char name[20]="gyy"; //ok 但先定义,再赋值的方式就是错误的。 char name[20];8 {5 T) J8 }1 r! _. K( p4 I# r; ^
name="gyy"; //error 对开始的程序修改方式(1) #include <iostream>4 S4 p7 _4 i4 T- ]& B T
using namespace std;( S1 U. z( Y/ Q# s% h1 D5 G
struct student- Y3 ?0 [/ H8 E1 V" ?) h
{0 B' ^7 u4 C/ R" y
string name;9 I: q/ X* h( w% d# I
int age;5 r' D* E N u5 R" _
}; int main( )
1 }% [. u6 f4 B{
# [1 `( M: x7 N+ u g student s;
2 v9 r! P1 Y1 L1 f- p& } v s.name="gyy"; //ok; X# K) A' t0 g' b' W9 C
return 0;2 A4 j9 o& w/ Q2 \1 p. h
} 对开始的程序修改方式(2) #include <iostream>
J+ N3 `/ ^% ]. g: y3 pusing namespace std;
" H9 r' D6 z2 [& Kstruct student
4 r9 o% U8 h7 p- Q0 o* C0 `{5 K' T/ b6 d2 e g; ~0 Q
char name[20];
1 Y& E: S9 l8 b) T int age;* i2 h* y: c0 R- s/ ]: E$ ]! F- S
}; int main( ). o5 y. ]7 p, Y- K
{; n0 [! {# J$ x/ Z1 x/ c9 {
student s;" L8 A1 H2 f5 F9 v( R& H `
strcpy(s.name,"gyy"); //ok' w8 I. X0 Y0 _4 S! @
return 0;; ~4 _4 Y t+ Q
} 9 s# F; _/ {( E( J# |9 ]" D
|