请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
#include <iostream>
4 z4 ^3 t. P. h: s9 M1 Susing namespace std;
0 H8 a) ~# r4 u* {" xstruct student$ H% O! }* B& _' j6 ]& S# G
{# e" n* B8 z+ [
char name[20];
8 S9 ^7 D. S# x6 |( C4 d. t2 ] int age;
; r3 }7 I+ L' V& j7 Z/ I9 x}; int main( )$ g4 c9 y, \6 Z" C5 g; g
{
7 {, Z& [) @; d% S7 K0 ]6 K. g student s;6 [; X5 @) `2 c/ v5 O1 S( u
s.name="gyy"; //error" K" |# Y& @6 ~ W$ H, q( t3 C2 _
return 0;7 o) K8 K! |5 v# q/ a( K6 m! d
}6 x# ~: A5 D" \& T
道理和以下语句错误的原因一样,数组名表示常量,不允许对常量赋值,所以常量不允许出现在“=”的左边,当做左值出现。所以不能直接用字符串赋值给数组名。但请注意:可以在定义字符数组的同时用字符串给字符数组赋初值。 char name[20]="gyy"; //ok 但先定义,再赋值的方式就是错误的。 char name[20];7 F. c8 D1 _+ \. ^
name="gyy"; //error 对开始的程序修改方式(1) #include <iostream>
( g1 X& `& o' ~7 P; Husing namespace std;
$ d/ o2 W/ |& D) ]9 p6 wstruct student( t8 J3 U8 [# D* i, W
{
; @, b s, Z- o; b7 S8 @ string name;
3 N* v5 Y% o( z; U* I3 B* y0 X1 ~ int age;
+ F; e. H, y3 v9 I, Y}; int main( )( A5 {1 s8 w5 I5 { d7 l0 i: `9 m
{
& @8 x; n7 w7 l6 B+ | y student s;
% L% }. X9 Q" k/ P' M- m4 R I7 g s.name="gyy"; //ok
' s3 C) k% v# \" B. J6 b6 s return 0;; c9 Y, T, ~9 I# n* b _. ~
} 对开始的程序修改方式(2) #include <iostream>
+ Y. T5 |% B2 o0 u- V9 j# husing namespace std;
, e3 o3 u0 H- a. e; {" t+ Cstruct student
3 x. F# ~* C0 ?. J, n t{/ ~' J6 x- B. g C4 K' F
char name[20];7 Z7 H! r3 l7 K' {7 J% E
int age;
0 v6 v$ U/ J: D7 p3 s9 c}; int main( )- T; a; k2 ^/ m; P4 S
{
' o* c, N+ p/ o i student s;
8 ]1 O6 V) |; o% \ strcpy(s.name,"gyy"); //ok
" ?, @: h- A6 \8 {# z( ? return 0;3 ]6 y# ~7 i2 K, j4 [
}
* I: y! T0 c, ?' I9 r6 p |