请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
#include <iostream>. c% A& P$ M- r; S; U, y% N8 I6 J
using namespace std;( s0 C7 z" G& s; p5 p& o
struct student
+ ?7 H/ H, t% m' Q; v* }+ J{& N4 u7 p H: W" ]2 M/ }
char name[20];
2 r" r- \9 K6 @ int age;& m! |3 {1 g/ B9 M9 [3 ~
}; int main( )
2 {, D$ D/ Q; I$ d. g{$ t z- W' [/ r; L1 B2 I2 S8 [9 P
student s;, [8 x5 x: M. d# F3 E/ ~; V
s.name="gyy"; //error* i( N* R, e) J4 F2 T
return 0;
! U! r/ b# M0 q" L5 y}
8 @+ p" v: c% n6 } 道理和以下语句错误的原因一样,数组名表示常量,不允许对常量赋值,所以常量不允许出现在“=”的左边,当做左值出现。所以不能直接用字符串赋值给数组名。但请注意:可以在定义字符数组的同时用字符串给字符数组赋初值。 char name[20]="gyy"; //ok 但先定义,再赋值的方式就是错误的。 char name[20];
- u4 d( A/ [) K/ C/ v name="gyy"; //error 对开始的程序修改方式(1) #include <iostream>: y' k- N0 [" A" O. G
using namespace std;5 F' s) b) C$ }4 j- i
struct student9 i9 o" v! w; G' |- H4 F% b/ a
{* }# a+ k: [1 v ]4 J1 k9 `
string name;/ S% m9 @' y8 [
int age;* i* v% x# Z' p5 Z8 {6 A- q
}; int main( )
- m0 a' U) F. f v, l$ c0 d" Y# @{; U0 S( B0 V# j4 a$ S/ y5 H" F
student s;
# o; j I- z5 \; K s.name="gyy"; //ok
U8 E$ b Z4 l# Q return 0;& v& ~/ D, M9 i' m2 Y
} 对开始的程序修改方式(2) #include <iostream>9 N9 ?( A" K& H# {$ J+ R
using namespace std;9 F" @$ S, S9 M$ N4 {
struct student% C+ i: Q- N* j! B1 o+ P
{8 D1 b0 Z. o) v, N# S
char name[20];6 L( c+ J' y7 \6 c
int age;
4 J F' \; ^& p2 d1 V; Y7 y4 H}; int main( )8 V# E0 |7 e7 O9 Q
{/ O& A1 r" U- P; y0 g
student s;- q8 t. Y! ^' s
strcpy(s.name,"gyy"); //ok
* S) ]9 L' w. G7 W5 _4 o" {+ d, g return 0;
: i3 U0 J9 d% n} ( Z6 P3 y. }$ q1 G! J
|