读书人

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

发布时间: 2012-04-14 17:14:21 作者: rapoo

结构体数组赋值错误的问题
定义了一个结构体,定义两个成员
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格式是可以输出的。

读书人网 >C语言

热点推荐