c语言的问题.我定义了一个结构体,请问怎么才能在分函数中调用这个结构体并改变它的某个值?该怎么定参

c语言的问题.我定义了一个结构体,请问怎么才能在分函数中调用这个结构体并改变它的某个值?该怎么定参数?

  C语言在一个函数里面定义了一个结构体,在另外一个函数里面使用:
  struct tmp {
   int a;
   int b;
  };
  struct tmp c; //1. 采用全局变量
  int func1()
  {
   struct tmp c;

   func2(c); // 2. 采用传参
  }
  1. 定义成全局变量
  2. 通过传递参数
  3. 只能通过这两种方式

  tmp.h
  #ifndef TMP_H_
  #define TMP_H_
  struct Tmp {
   int a;
   int b;
  };
  extern struct Tmp c; //这里是main.c中定义的c的扩展,可以让包括这个头文件的文件中的函数 //都可以用这个变量
  #endif //TMP_H_
  把结构体写在tmp.h头文件中
  在main.c中定义
  struct Tmp c;

  在其它的.c文件中包含tmp.h,那么这个文件中的函数就可以用这个c了
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-05-14
把结构体变量定义成全局变量,改变结构体的值不如把结构体变量定义成结构体数组,函数的参数定义成结构体变量名,注意此被调用的函数是有返回值的本回答被网友采纳
第2个回答  2016-06-17
在结构体下面定义个结构体变量追答

struct sa
{
int a;
}temp;

然后在函数里面temp.a这样调用

C语言在一个函数里面定义了一个结构体,怎么在另外一个函数里面使用?
struct student \/*定义结构体*\/ { void main(){ void data_in(struct student putin[]);void data_out(struct student *p);void data_pout(struct student *s1);data_in(pers); \/*调用指针输入函数*\/ data_out(sp); \/*调用指针输出函数*\/ data_pout(sp); \/*调用函数名输出...

C语言中结构体嵌套后如何放到函数体中
以形参的形式放入函数体进行操作,只需要将形参和实参类型匹配就可以了。比如a[i].riqi.year是int型,那么你的函数就可以写成void fun(int i)。

c语言一个结构体如何在多个源文件里面调用?
1、引用类型。需要将结构体定义与头文件中(.h文件),然后在需要引用类型的源文件(.c)中,均引用该头文件,即可使用该类型。2、引用全局变量。要引用全局变量,需要先引用类型,之后在一个源文件中定义全局变量,在其它源文件中声明该全局变量,即可使用。比如结构体为struct test, 定义全局变量为 struc...

C语言中怎么给一个结构体用scanf进行赋值?
void getName(struct student * p) \/\/函数:向结构体读取姓名 { int i;for (i = 0; i < 5; i++)scanf("%s", &(p + i)->name);} int main(){ int i, j, average[3] = { 0 }; \/\/average数组储存每门课的平均分 getNum(Stu); \/\/函数调用 getName(Stu);getScor...

c语言中如何在子函数中调用主体函数的结构数组
有两种方式:1.将结构体声明为全局变量 2.将改结构体作为参数传给子函数,这样子函数就可以使用该结构体了

C语言中定义一个结构体如何在不同的.C文件中使用。
c文件一个.h文件 c 2.c 3.c 4.h 这三个头文件都引用4.h include<4.h> 4.h中定义一个结构体类型struct test{};1.c中定义一个该结构体类型的全局变量struct test mode;4.h中extern struct test mode;其他.c文件就可以直接使用这个结构体变量了,并且是共用的 ...

C语言中如何把结构体变量定义在主函数内,再调用一个自定义输入函数和输...
可以在外部定义结构体类型,然后在主函数内部定义该类型的变量。在输入输出函数调用时,以结构体变量指针做为参数传递。参考代码如下:include <stdio.h>struct test{ int a;};\/\/定义结构体类型struct test。void input(struct test* p)\/\/输入函数,以指针作为参数。{ scanf("%d",&p->a);}...

C语言定义结构体并赋值后,怎样把整个结构体传递给子函数?
使用堆内存,然后传递一个指向这个结构体的指针就可以了,或者直接向子函数传递结构体变量.比如:include <stdio.h>#include <malloc.h>typedef struct STRC_def{int i;int j;}STRC;int Func1(STRC * pSTRC);int Func2(STRC aSTRC);int main(){STRC * a =(STRC *)malloc(sizeof(STRC)...

用C语言 定义一个关于空间点的结构体,它包含了点的3个坐标值,编写一个...
1、首先我们找到头文件与main函数之间。2、写上,我们的第一个关键字【struct】。3、然后我们对该结构体进行命名。4、在里面,我们便可以编写他的成员。5、可以编写数组也可以是普通变量。6、书写完毕后,我们一定要用分号结束。

C语言结构体成员的引用问题
是指针间的赋值,必须保证左右操作数的指针类型是一致的。由于n是结构体sk的第一个变量,因此其地址与结构体变量地址相同,可以强制转换得到正确的地址。c是一个二维数组,p是一个指向数组的指针,因此p的*运算都是得到一个数组,**运算才能取到数组中的值。只有D是**运算。

相似回答