初始化结构体的问题,请问这样写有什么作用?应该怎样使用呢?

作者&投稿:攸轻 (若有异议请与网页底部的电邮联系)
结构体初始化问题~

结构体的构造函数。等于
ext(int iid=0, int aa=3, int bb=4) {id=iid; a=aa; b=bb;}
id,a,b的缺省值分别为0,3,4

如果给好评的话,麻烦写一句:
章鱼桶是个好人

从开头打印到结尾,用循环就可以了

int i;
char *p=(char *)&plogout;
for(i=0;i<sizeof(LOGOUT);i++)
printf("%02x ", p[i]);/* 16进制输出 */

在 C++ 中 struct 本质上是一个轻量级的 class, 也可使用构造函数的, 你的代码中的构造函数是一个复制构造函数, 也就是用同一类的另一个对象来初始化自已:
mystruct s1;
s1.a = 1;
s1.b = 2;
mystruct s2(s1); // 在这里调用复制构造函数

另外, mystruct(const mystruct &test): a(test.a), b(test.b) 的写法是初始化列表, 是用在构造的时候初始成员, 而要是这样:
mystruct(const mystruct &test)
{
a = test.a;
b = test.b;
}
在话, 就是在构造之后, 再赋值 (或者调用 '=' 操作符), 要走两步, 有时候可能会影响效率.
尽量使用初始化列表来初始成员, 在初始列表里除了数组以外, 可以初始任何东西


c语言memset初始化结构体问题
1.memset函数的原型void *memset(void *s, char ch, size_t n);函数的第一个形式参数是指针类型,所以实参因为一个地址,即&a 注意&a与a是不同的.a是结构体变量名,而&a是变量a的地址.2.另外memset()是一个库函数函数,需要加头文件#include<string.h> 3.正如你所说的全局与主函数内定义变...

关于结构体初始化的问题
结构体 全是int型变量,而且全部要清零,可以 struct intstruct is;memset(&is,0,sizeof(struct intstruct));这样会把整个结构体的空间全部清零,对应的所有成员也都是0值了

结构体变量初始化问题
i=1;都是初始化语句。比如类A有构造函数A()那么A a();或者 A a;就是对其初始化。同样int i=1;是初始化语句,相当于这样初始化int i(1);可以说是初始化,又可以称为初始化赋值。如果int i;这样写,i的值是上一次栈内存上运行的结果,而不是初始化赋予的值。2.struct{ int a;char...

初始化结构体的问题,请问这样写有什么作用?应该怎样使用呢?
在 C++ 中 struct 本质上是一个轻量级的 class, 也可使用构造函数的, 你的代码中的构造函数是一个复制构造函数, 也就是用同一类的另一个对象来初始化自已:mystruct s1;s1.a = 1;s1.b = 2;mystruct s2(s1); \/\/ 在这里调用复制构造函数 另外, mystruct(const mystruct &test): a(test...

C++中结构体数组的初始化问题
第一个问题,不能这样初始化,需要 inflatable a={0};集合中至少需要1个元素方可作为初始化列表,专业会将name、volume、price的所有字节全部初始化为0。第二个问题,如果结构体包含有string a;那么就不能使用初始化列表初始化了。也就是说 inflatable a={0}会编译不成功,因为string类有构造函数...

结构体初始化的问题。
typedef自定义数据类型,p1类型直接赋值,相当于int = 5;能不错嘛 而下面是定义一个结构体,对其赋值当然没错

c语言中在头文件中初始化结构体的问题。
老大!数组是怎么初始化的?int x[]={1,2,3,4,...,2222222222}; !!!再看看你是怎么做的:int x[]={1 2 3 4 5 ...},你这样行么?每个元素之间要用逗号分隔:client[10]={ {"A0000","000000",0},{"A1001","123456",0},{"A1002","234561",0},{"A1003","345612",0...

关于结构体初始化
如果是int a[10]={1};那么就是第一个数是1,其他的数是0。就是1,0,0,0...2.下面到结构。结构和数组有点类似;比如:typedef struct Text{ int a;float b;char c[10];}text;如果我写了text temp={1,2,"mmm"};那么就可以正常全部初始化成功,参数符合。如果我写了text temp1={1};...

C语言里面结构体初始化遇到问题!!求助高手!!
struct s1 b = { "hello", 1, &b };就可以,但是在一个函数内部你就要写成 static struct s1 b = { "hello", 1, &b };(我已经在TC里面调试过了,加上static就可以通过了)如果你在函数内部没有把b声明为静态变量,你要初始化就必须要写出三条初始化语句,分别对结构体内部的三个域...

请教一个简单的结构体初始化问题
initializer list可以初始化两种类型 1 array类像int a[5]={0};2 没有construct ,private ,protected 成员且没基类的uion ,struct,class

南皮县18688832633: C++ 结构体初始化的问题 -
子映治伤: 第一个问题,不能这样初2113始化,需要 inflatable a={0};集合中至少需要1个元素方可作为初始化列表,专业会将name、volume、price的所5261有4102字节全部初始化为0.第二个问题,如果结构1653体包含有string a;那么就不能使用初始化列表初始化了.也就是说 inflatable a={0}会编译不成功,因为版string类有构造函数权,具备有构造函数的成员的结构体不能用={0}的方式进行初始化.

南皮县18688832633: 结构体可不可以这样初始化 -
子映治伤: 方法是在定义变量的同时给其一初始值.结构体变量的初始化,遵循相同的规律. 简单变量的初始化形式如下: 数据类型 变量名=初始化值; 例如,定义整型变量a,并给其初始化值10的语句如下 int a=10; 数组的初始化,需要通过一常量数...

南皮县18688832633: C语言结构体里的结构体怎么初始化 -
子映治伤: 中间又有结构体嵌套,你的格式应该是{{ ..{}..},{..{}..},...} 其实一般不这么初始化,定义全局静态变量或者指针,指针的话通过malloc分配内存,然后通过->访问结构体成员,静态变量的通过.访问成员,然后赋值.

南皮县18688832633: C语言里面结构体初始化遇到问题!!求助高手!! -
子映治伤: 楼主,这是编译器的问题.你的编译器不支持对一个结构体型的自动(automatic)变量内部的域进行一次性初始化.在这样的编译环境下,任何类似 struct s1 b = { "hello", 1, &b }; 这样的初始化的语句都是非法的.TC确实不允许这样的初始...

南皮县18688832633: C++ 结构体如何初始化 -
子映治伤: 有以下几种方法: 1 使用构造函数. 在C++中,struct可以当做类(class)来使用,同样支持成员函数,构造函数,析构函数.所以可以写对应的构造函数,实现自由初始化.2 定义时,按照成员变量位置,写初始化列表. 如struct test中有成...

南皮县18688832633: 请教一个简单的结构体初始化问题 -
子映治伤: 如果你的结构体全是int型变量,而且全部要清零,可以 struct intstruct is; memset(&is,0,sizeof(struct intstruct)); 这样会把整个结构体的空间全部清零,对应的所有成员也都是0值了.

南皮县18688832633: C语言中定义了结构体一定要先进行初始化么?如果不初始化直接使用会有什么后果? -
子映治伤: 要先进行初始化,如struct student{ int number; int score;}; 就是先定义,目的是让系统给它分配空间和地址,让后再定义一个结构体类型 如 struct student std; 这时结构体才能使用, 要不然你真接使用,系统之间没有给你地址和空间,你的数据要放那里都不知道

南皮县18688832633: 关于结构体变量初始化的问题 -
子映治伤: 你好哈 内部变量是一个相对的概念 凡是在{}内的变量相对此{}的代码来将就是内部的. 内部变量在没有赋初始值时是不确定的. 但是在所有函数外的变量叫全局变量, 他在没有赋值时, 编译时会自动赋值0或者0.0;const 常量在定义时必须赋值. 结构体的定义一般是在主函数外的, 但此定义只是创建数据内型,并并没有占用内存. 当你在用你已经创建的结构体类型数据定义变量时,此时才占用内存.如:ROBOT_POS rbtpos 此时rbtpos 变量和其他变量一样也有局部,全局,静态之分.

南皮县18688832633: c语言,结构体数组怎么初始化 -
子映治伤: 结构体数组在定义的同时也可以初始化,例如: struct stu{ char *name; //姓名 int num; //学号 int age; //年龄 char group; //所在小组 float score; //成绩 }class[5] = { {"Li ping", 5, 18, 'C', 145.0}, {"Zhang ping", 4, 19, 'A', 130.5}, {"He fang...

南皮县18688832633: c语言中,结构体初始化和数组初始化的写法是不是一样的?求解,谢谢 -
子映治伤: 比如一个这样的结构体struct test{int num;char ch;float num2;};如果按顺序赋值就是:struct test a = {1, 'a', 23};这样的话感觉写法是和数组差不多.但是结构体也是可以不按顺序初始化的.比如这样:struct test a = {.num2 = 1, .ch = 'a', .num = 23};

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网