关于C语言中函数修改结构体的值的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于C语言中函数修改结构体的值的问题相关的知识,希望对你有一定的参考价值。

假如结构体List,内有一个变量为len,然后我把这个结构体传入函数中,用此函数修改len的值的话,好像并没有用,我的理解是要对len做出修改的时候,实际上函数创建了另一个新的结构体List,所以做出的修改并非是针对传入的结构体。
那么如果typedef为结构体指针*List的话,是不是就可以做出修改了?

这个就是实参和形参的问题。
可以直接传入指针。 你说的typedef成指针是一种方式。
也可以还是typedef struct xxx List;
然后传入List*类型的参数。
效果是一样的。
参考技术A 前面的理解正确。是指针的话,要“通过指针修改目标值”才能实现,就是要用p->len或(*p).len操作,其中p是指向结构体的指针。

C语言关于结构体定义的问题

我见过这样的题,没看懂你的意思,不过我看这样说吧,
struct
a
...
B;
我打。。。的地方表示你可以在那里添加所有的数据形式的定义,比如,int
a;char
a[10];等等;
而B表示变量名。就如同int
a的a一样,只是一个变量标示符,他就是一个结构体变量了。当你使用typedef使,它表示的是枚举类型,功能如同宏定义一样,
使用他的时候方法如下:
首先
写出你要表示的变量类型。列如:int
a;然后在int的前面加上typedef,
typedef
int
a;然后把变量名a
改变成你要使用的表示符如
pp;
现在就变成
typedef
int
pp;
当你要在定义其他的变量是int型的时候,你就可以这样定义了
pp
b;
这里的b就是变量名了。注意枚举类型它并不产生新的变量类型,只是一种替代作用。我在给你举个列子吧
typedef
struct
a
int
s;
char
p[10];

num;
num
n;
这时候n就是
struct
a
类型的结构体变量了。不知道你懂没有。。。
参考技术A B
struct
结构体名
变量名列表
struct
结构体名

成员说明列表

以上是关于关于C语言中函数修改结构体的值的问题的主要内容,如果未能解决你的问题,请参考以下文章

c语言中关于结构体 调用函数的问题 新手求教

c语言 结构体的指针作为函数参数问题

Delphi调用Dll返回结构体的问题?

C语言进阶学习笔记四自定义类型详解之结构体

C语言进阶学习笔记四自定义类型(结构体+位段)

hello C语言结构体(下)