首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

结构体数组赋值异常的有关问题

2012-04-14 
结构体数组赋值错误的问题定义了一个结构体,定义两个成员struct BASIC_DATA{……char user[32]char passwor

结构体数组赋值错误的问题
定义了一个结构体,定义两个成员
struct BASIC_DATA
{

  ……
  char user[32];
  char password[32];
};

struct BASIC_DATA basic_dat; 


用for 给他们赋值:
for(int i=0;i<32;i++)//测试加入的代码
  {
  basic_dat.user[i]=i; //测试加入的代码
  basic_dat.password[i]=31-i;//测试加入的代码
  }

出来的结果是:basic_dat.user、basic_dat.password 所以元素都为0 这是为什么????

[解决办法]
你的两个结构体变量都是char,赋值i和31-i都是int,是不是需要做一下类型转换?
[解决办法]

C/C++ code
#include<stdio.h>struct BASIC_DATA{    int user[32];    int password[32];};int main(void){    struct BASIC_DATA basic_dat;      int i;    for(i = 0; i < 32; i++)//测试加入的代码    {        basic_dat.user[i] = i; //测试加入的代码        basic_dat.password[i] = 31-i;//测试加入的代码    }    for(i = 0; i < 32; i++)    {        printf("%d %d\n",basic_dat.user[i], basic_dat.password[i]);    }            return 0;}
[解决办法]
我打印出来有值啊
[解决办法]
basic_dat.user第一个字符为0,空字符,以字符串没有输出;
basic_dat.password第一个字符为单元分隔符,后面空格,...,后面都是特殊字符,以字符串输出不会显示。
如果单独以%d格式是可以输出的。

热点排行