查看: 3055|回复: 0

[资料分享] 结构体中数组成员的赋值问题,值得借鉴哈!

[复制链接]

4

主题

3

回帖

44

积分

管理员

积分
44
发表于 2015-4-26 11:36:28 | 显示全部楼层 |阅读模式

请使用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
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

在本版发帖
关注公众号
QQ客服返回顶部