| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 9921 人关注过本帖
标题:结构体赋值都错了,为什么?
只看楼主 加入收藏
justwant
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2008-6-8
收藏
 问题点数:0 回复次数:20 
结构体赋值都错了,为什么?
#include<stdio.h>

struct test
{ char name[20];
  int  size;
} s[3];

int main()
{
    s[0].name="Linux";
    s[0].size=10;
  printf("%s",s[0].name);
  return 0;
}
  
编译错误:
 incompatible types in assignment
搜索更多相关主题的帖子: 赋值 结构体 name assignment types 
2008-06-20 18:01
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
char* ,cosnt char*

樱花大战,  有爱.
2008-06-20 18:06
beyond0702
Rank: 1
来 自: 桂 林
等 级:新手上路
帖 子:219
专家分:0
注 册:2007-11-17
收藏
得分:0 
字符串不能那样赋值
用 strcpy()

蝴 蝶 颤 动 了 翅 膀 !!!
2008-06-20 18:09
now
Rank: 1
来 自:广州
等 级:新手上路
帖 子:544
专家分:0
注 册:2007-11-9
收藏
得分:0 
char name[20];
name="Linux";
//没见过

[[it] 本帖最后由 now 于 2008-6-20 18:11 编辑 [/it]]

GIS
Geographic Information System
你在哪里?——》你的坐标?
2008-06-20 18:10
justwant
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2008-6-8
收藏
得分:0 
那为什么我看书上讲“数组初始化”的时候可以这样呢:

char string[13]="How are you!";
2008-06-20 18:18
now
Rank: 1
来 自:广州
等 级:新手上路
帖 子:544
专家分:0
注 册:2007-11-9
收藏
得分:0 
char string[13]="How are you!";//此可以;
————————
char name[20];
name="Linux";//这就不可以;name为数组名,数组首地址,相当于&name[0],为地址常量,常量岂可改变;

GIS
Geographic Information System
你在哪里?——》你的坐标?
2008-06-20 18:27
无语雨季
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2008-6-19
收藏
得分:0 
[bo][un]justwant[/un] 在 2008-6-20 18:18 的发言:[/bo]

那为什么我看书上讲“数组初始化”的时候可以这样呢:

char string[13]="How are you!";


别急,你只是没弄怎么弄明白初始化而已。
我这里随便说下我的观点,前面的各位兄弟都说得很对的。
下面的语句没有问题,
char string[13]="How are you!";
但是
char string[13];
string[]="How are you!";
这样就错了,这是赋值语句,而且数组只能给具体元素赋值的,这里赋值需要这个地方需要
strcpy(string,"How are you!");

同样对于结构体
struct student
{
 int num;
 char name[20];
}stu={1,"zhangshan"};
是正确的初始化

但是到函数里面给结构体的字符数组元素赋值就需要strcpy
比如
main()
{
......
.....
 stu.num=10;
 strcpy(stu.name,"zhangshan");
}
2008-06-20 18:40
beyond0702
Rank: 1
来 自: 桂 林
等 级:新手上路
帖 子:219
专家分:0
注 册:2007-11-17
收藏
得分:0 
你必须搞清楚 :初始化和赋值是不同的
1:
  char arry[]="hello!"; //定义变量的同时给它一个值(初始化)

2:
  char you[10];// 定义变量但没给它值,以后你给他值就叫做赋值

蝴 蝶 颤 动 了 翅 膀 !!!
2008-06-20 19:00
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
鄙视重复发帖的某人……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-06-20 19:07
beyond0702
Rank: 1
来 自: 桂 林
等 级:新手上路
帖 子:219
专家分:0
注 册:2007-11-17
收藏
得分:0 
是男人就点出我名字,别搞什么某人
重复发不行吗,有什么个人意见直接说
俺从来就不伪装

蝴 蝶 颤 动 了 翅 膀 !!!
2008-06-20 19:13
快速回复:结构体赋值都错了,为什么?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031938 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved