C语言 用函数初始化结构变量

作者&投稿:利闸 (若有异议请与网页底部的电邮联系)
C语言中,自定义函数可以使用全局变量,为什么还要传递给函数一些参数呢?~

我和你一样是新手,但是我看了很多也做了很多
全局变量最好是少用,你想啊,你这里定义了一个全局变量,在这个函数中改了一下,另外的一个函数中又改了一下,用的少了还行,用的多了呢,你知道最后一次是谁给改的吗

在说写对的话,代码很难读

你上面的想法完全正确,可以用,但是那程序太简单了,没多大意义,所以作为练习是可以的,学习的过程和使用的过程差距很大啊,我一个新手总结的

呵呵

一起学习

静态变量是在编译时就初始化的,理论上你检测不到的……
对象的初始化和你在类中的的定义有关,如果类中没有定义,则会进行一个默认的初始化,将所有值初始化为0(这么说其实不准确的,不过现简单的这么说吧)。

或者通过参数传进去,如
void Init(stu_handlertus *hdl)
{
hdl->count = 1;
for(i = 0; i < 50; ++i)
{
hdl->rtus[i].rtuindex = 0
hdl->rtus[i].a = 0;
hdl->rtus[i].b = 0;
hdl->rtus[i].c = 0;
}
}
调用
Init(& handlertus);
即可。

不过结构:
struct stu_handlertus
{
int count;
struct stu_handlertus rtus[50];
}handlertus;
是错误的,原因是这一句
struct stu_handlertus rtus[50];
这样就不知道结构stu_handlertus的大小了。所以上面改为
struct stu_handlertu rtus[50];

两个结构名字这么接近,是一个不好的风格。

不会吖 只在函数作用域内有效

用引用

handlertus aa

fun(aa);

fun(handlertus &a)
{
...
}

若只是初始化。写个构造函数

不能

handlertus是全局变量时候可以完成赋值了吧
要不是那不行只在void Init() 中有效


湄潭县17266803492: C语言 用函数初始化结构变量 -
革富帮君: 或者通过参数传进去,如 void Init(stu_handlertus *hdl) { hdl->count = 1; for(i = 0; i < 50; ++i) { hdl->rtus[i].rtuindex = 0 hdl->rtus[i].a = 0; hdl->rtus[i].b = 0; hdl->rtus[i].c = 0; } } 调用 Init(& handlertus); 即可.不过结构:struct stu_handlertus { int count; ...

湄潭县17266803492: c语言如何对结构体某一成员初始化 -
革富帮君: 有以下几种方法: 1 使用构造函数. 在C++中,struct可以当做类(class)来使用,同样支持成员函数,构造函数,析构函数.所以可以写对应的构造函数,实现自由初始化.2 定义时,按照成员变量位置,写初始化列表. 如struct test中有成...

湄潭县17266803492: c语言中如何将结构中变量清空 -
革富帮君: 可以利用memset函数对变量进行清空操作.扩展资料 memset()函数原型是extern void *memset(void *buffer, int c, int count) buffer:为指针或是数组,c:是赋给buffer的值,count:是buffer的长度.这个函数在socket中多用于清空数组.如:原型...

湄潭县17266803492: C语言 结构体声明中const成员如何初始化 -
革富帮君: const成员必须在定义的时候同时初始化,而不能在后续再进行赋值.结构体定义时初始化的方法为: struct type_name var_name = {value1, value2, ...}; 其中type_name为结构体类型名,var_name为结构体变量名.=后面的大括号中,是各个成员变量的初始化值,根据成员变量的定义顺序一一对应.在初始化变量表内没有显式定义的,系统默认初始化值为0.

湄潭县17266803492: c语言怎么结构数据初始化?
革富帮君: C语言结构体类型变量初始化分为 普通变量 和 数组变量 两种形式,说明如下: typedef struct { int x,y; }direction; direction dir={1,2} ; //普通变量,用一组{}括起来,成员变量数据间以逗号分隔,按变量定义顺序对应数值.未赋值成员,默认填0 direction move[8]={ //数组变量,整体用一组{}括起来,每一个元素按普通变量格式进行书写,各元素间用逗号分隔.未赋值元素,默认填0 {0,0},{0,1},{1,0},{1,1}, {2,0},{2,1},{3,0},{3,1} };

湄潭县17266803492: 在C语言中怎么给一个变量的初值赋另一个函数的返回值 -
革富帮君: 定义变量的时候,直接等于一个函数返回值即可. 一、在C语言中,定义变量同时,给变量赋值,称为初始化.二、初始化形式为 TYPE var_name = INIT_VALUE; 其中TYPE为变量类型, var_name为变量名, INIT_VALUE为初始值.三、要用...

湄潭县17266803492: C语言数据结构顺序表初始化程序 -
革富帮君: 你的SqList结构包含的元素是一个100个int类型的数组,和一个int变量.在初始化函数中,首先参数sqlist *L,应该改成Sqlist *L 然后你给L->Elem_array进行赋值操作是不对的,因为Elem_array是数组首地址,是个常量,不能进行赋值操作.而且本身结构里面定义的是数组元素,所以已经有空间了,根本不需要再另外申请内存.如果需要动态申请内存,就把Elem_array声明为指针类型:ElemType *pElem_array

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

湄潭县17266803492: c语言 在结构体中 初始化其中的数组 -
革富帮君: 结构体是个空架子,是无法“初始化组”的,只有初始化结构体的对象(即变量).像你这里可以这么做:在使用这个结构体前写一句struct bf x={NULL,NULL,NULL,NULL};,那么x中的所有字符数组就都为空了.

湄潭县17266803492: C语言问题结构体变量 -
革富帮君: 程序首先定义了一个名为 struct S 的结构体类型,包含一个整形变量n,一个整形数组,整形变量可用来标记数组的长度.然后定义了一个名为 f 的函数,该函数定义了一个指针p作为形参,指针类型为struct S,函数完成的功能是排序.主函数部...

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