| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 569 人关注过本帖
标题:结构中有字符数组 以及初始化问题
只看楼主 加入收藏
甜脆的故事
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2013-3-20
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
结构中有字符数组 以及初始化问题
程序代码:
#include <stdio.h>
#define MAX 100
typedef struct
{
  char str[MAX];
  int length;
}String;
void main(void)
{
  String string;
  string.str[MAX]="DATA";
  string.length=4;

 

  printf("%s\n",string.str);
  return 0;
}
  为什么上面这个不行呢


#include <stdio.h>
#define MAX 100
typedef struct
{
  char str[MAX];
  int length;
}String;
void main(void)
{
  String string;
  string={"DATA",4};
  printf("%s\n",string.str);
  return 0;
}
上面这个甚至无法编译 



#include <stdio.h>
#define MAX 100
typedef struct
{
  char str[MAX];
  int length;
}String;
void main(void)
{
  String string={"DATA",4};
  printf("%s\n",string.str);
  return 0;
}

 只有这个能正常的运行

搜索更多相关主题的帖子: 结构 color 
2013-04-14 19:46
甜脆的故事
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2013-3-20
收藏
得分:0 
我记得我以前做数据结构的时候 定义通用类型的数据  那时候把DATATYPE 换成 char类型的都没有问题
2013-04-14 20:08
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:10 
上面那两种,你以前真的可以通过?换回你以前的做法,看过不过得了。

授人以渔,不授人以鱼。
2013-04-14 20:27
甜脆的故事
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2013-3-20
收藏
得分:0 
回复 3楼 TonyDeng
你理解错了 我说的以前是做链表的头文件的时候把DATATYPE定义为char 的时候也能处理字符 ,而且现在我写的就是char类型的结构也出错了
2013-04-14 21:24
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你学过了数据结构,还没弄清楚初始化和赋值的语法。

授人以渔,不授人以鱼。
2013-04-14 21:29
helloUJS
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:168
专家分:731
注 册:2013-3-27
收藏
得分:10 
#include <stdio.h>
#define MAX 100
typedef struct
{
  char str[MAX];
  int length;
}String;
void main(void)
{
  String string;
  string.str[MAX]="DATA";/*不能对数组赋值,改成strcpy(string.str,"DATA");就可以了*/
  string.length=4;


  printf("%s\n",string.str);
  return 0;
}
  为什么上面这个不行呢


#include <stdio.h>
#define MAX 100
typedef struct
{
  char str[MAX];
  int length;
}String;
void main(void)
{
  String string;
  string={"DATA",4};/*结构体变量不能整体赋值*/
  printf("%s\n",string.str);
  return 0;
}
上面这个甚至无法编译



#include <stdio.h>
#define MAX 100
typedef struct
{
  char str[MAX];
  int length;
}String;
void main(void)
{
  String string={"DATA",4};/*这里是结构体变量初始化,不是赋值,所以可以*/
  printf("%s\n",string.str);
  return 0;
}
2013-04-14 21:31
甜脆的故事
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2013-3-20
收藏
得分:0 
回复 6楼 helloUJS
先谢谢再看
2013-04-14 21:37
甜脆的故事
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2013-3-20
收藏
得分:0 
回复 6楼 helloUJS
string.str[MAX]="DATA";/*不能对数组赋值,改成strcpy(string.str,"DATA");就可以了*/
是不是 普通的数组可以这样做 但是结构的数组不能这样做啊?
2013-04-14 21:39
甜脆的故事
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2013-3-20
收藏
得分:0 
回复 6楼 helloUJS
谢谢了 我终于弄懂了 赋值和初始化的问题了
2013-04-14 22:02
快速回复:结构中有字符数组 以及初始化问题
数据加载中...
 
   



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

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