justwant 发表于 2008-6-20 18:01

结构体赋值都错了,为什么?

#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

中学者 发表于 2008-6-20 18:06

char* ,cosnt char*

beyond0702 发表于 2008-6-20 18:09

字符串不能那样赋值
用 strcpy()

now 发表于 2008-6-20 18:10

char name[20];
name="Linux";
//没见过

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

justwant 发表于 2008-6-20 18:18

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

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

now 发表于 2008-6-20 18:27

char string[13]="How are you!";//此可以;
————————
char name[20];
name="Linux";//这就不可以;name为数组名,数组首地址,相当于&name[0],为地址常量,常量岂可改变;

无语雨季 发表于 2008-6-20 18:40

[quote][bo][un]justwant[/un] 在 2008-6-20 18:18 的发言:[/bo]

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

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

别急,你只是没弄怎么弄明白初始化而已。
我这里随便说下我的观点,前面的各位兄弟都说得很对的。
下面的语句没有问题,
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");
}

beyond0702 发表于 2008-6-20 19:00

你必须搞清楚 :初始化和赋值是不同的
1:
  char arry[]="hello!"; //定义变量的同时给它一个值(初始化)

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

StarWing83 发表于 2008-6-20 19:07

鄙视重复发帖的某人……

beyond0702 发表于 2008-6-20 19:13

是男人就点出我名字,别搞什么某人
重复发不行吗,有什么个人意见直接说
俺从来就不伪装

StarWing83 发表于 2008-6-20 19:24

晕……还理直气壮了……我不管了,反正不是我的代码出问题……

中学者 发表于 2008-6-20 19:27

悲哀....

justwant 发表于 2008-6-20 19:45

[tk44] 很好很清楚!

无语雨季 发表于 2008-6-20 20:43

我想这个论坛是鄙视装B的人。
大家讨论问题,不要针对人嘛。
beyond0702你重复发帖为了阐述问题而已,说明热情,大家会支持的!

cosdos 发表于 2008-6-20 20:49

一个是“字符数组”一个是“字符串常量 的 指针常量”,类型不一致。


===============================================
两种东西实现上完全不一致的。

StarWing83 发表于 2008-6-20 21:04

晕,难道不会把自己的帖子顶起么?非要重复发帖……

coming 发表于 2008-6-20 21:05

恩 ,看了大家说的~~~赋值是针对有指向空间的才能实现其操作~~~呵呵

StarWing83 发表于 2008-6-20 21:21

恩,这是一点。如果深入钻研理论的话,进行赋值操作的必须是左值。而且类型匹配(有可能会有隐式类型转换)。

伤心的我 发表于 2008-6-20 21:35

濂戒箙娌℃湁鏉ヤ簡锛岄兘鍚典笂浜嗗懙

伤心的我 发表于 2008-6-20 21:36

涓轰粈涔堬紵

页: [1] 2

编程论坛