请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
#include <iostream>1 a+ X9 ?5 R& f3 R# l/ ?. _& R( [
using namespace std;
# c: i$ q- J0 \* ~3 q4 k& k7 Bstruct student* t2 n$ C0 `7 i! W$ E5 }" h
{
; `8 R! i* S7 K char name[20];* R C" Y1 _3 ^5 W/ d( ~5 o1 e' U
int age;
1 I" {: v5 [4 C* z0 d6 N& Z}; int main( ): B$ Y' R) c0 c9 ]/ r* k* F
{
! r: K1 o- f( t/ o' F3 h% G student s;" g/ \8 v6 J* I. @
s.name="gyy"; //error& Y+ G. d3 {; N" v) W
return 0;
. t# a* v5 ^, Q- ?5 L7 E5 t}4 f5 Q( m0 T0 R, b/ L7 p9 e* \
道理和以下语句错误的原因一样,数组名表示常量,不允许对常量赋值,所以常量不允许出现在“=”的左边,当做左值出现。所以不能直接用字符串赋值给数组名。但请注意:可以在定义字符数组的同时用字符串给字符数组赋初值。 char name[20]="gyy"; //ok 但先定义,再赋值的方式就是错误的。 char name[20];
" L) B/ j! n! Q2 f7 M% t: d3 C name="gyy"; //error 对开始的程序修改方式(1) #include <iostream>' B/ x6 i# K* t) _
using namespace std;' j1 U3 u# K& l& E2 H3 H' u8 ~! z
struct student' r4 I2 k2 M5 _; o/ b$ Q
{$ L5 n5 C- |* H7 ~! b9 \
string name;
" G; ?, l1 j. Y. w1 X int age;
: H( x5 H1 V% c+ ^$ V! t, r}; int main( )
- v3 Z2 D) w; L+ a{
$ K8 s( S1 A! S9 ~2 l$ o5 R student s;5 b) R8 P4 F$ [! F
s.name="gyy"; //ok4 R3 o8 ~$ u, j2 Y
return 0;
2 K Q" z! E# \, K% v- u% s+ m9 H} 对开始的程序修改方式(2) #include <iostream>% Q- M% ]6 w5 E# `
using namespace std;: e3 A l- i, {; n/ K/ E( g, V
struct student
" r+ }, v" D2 R3 `- c) C{2 d3 M" M7 ~9 K& ~
char name[20];# ]$ L. i" O2 a* Z/ C
int age;. t2 M9 O) {; k- t, v
}; int main( )7 e! {) \/ @& i2 y' q- k/ d3 s
{; {/ z; a( K9 V: K0 @. L4 N
student s;
: b% j3 N" j, `4 I& j1 W. ? strcpy(s.name,"gyy"); //ok
- {/ t( U- w7 ` p( W return 0;
' b3 E1 G" B- U9 G% w; N, a} # r% u1 z/ \; A2 d; P) S+ ?% Q
|