C 使用依赖于结构中的值的函数更新结构值
我该怎么做C 使用依赖于结构中的值的函数更新结构值,c,pointers,struct,C,Pointers,Struct,我该怎么做 typedef struct example_Type{ int x; int y; int z; } exampleType; void foo(exampleType* exampleStruct){ exampleStruct->z = "value from exampleStruct, variable x" + "value from exampleStruct, variable y"; } int main(){ e
typedef struct example_Type{
int x;
int y;
int z;
} exampleType;
void foo(exampleType* exampleStruct){
exampleStruct->z = "value from exampleStruct, variable x" + "value from exampleStruct, variable y";
}
int main(){
exampleType struct1;
struct1.x = 10;
struct2.y = 5;
foo(&struct1);
}
这样行吗?我想调用在x和y中找到的值,但是我该如何做呢?使用
exampleStruct->z = exampleStruct.y + exampleStruct.x;
而不是
exampleStruct->z = exampleStruct->y + exampleStruct->x;
->
运算符取消对其左操作数的引用,然后访问一个操作数
引用对象的成员的。因此,上述声明与我们所做的相同
exampleStruct->z = exampleStruct.y + exampleStruct.x;
是的,您可以这样做:
(*exampleStruct).z = (*exampleStruct).y + (*exampleStruct).x;
注意:您使用的是指针,因此在访问元素时将使用->
而不是
创建类型为
type\u name
type_name x;
创建指向类型\u name
的变量的指针
使用
struct
s时,您需要对指针执行以下操作:
type_name *y;
当您使用普通结构(无指针)时,您可以:
问题陈述
exampleStruct->z=“exampleStruct的值,变量x”+“exampleStruct的值,变量y”
可以重写为
“来自exampleStruct的值,变量z”=“来自exampleStruct的值,变量x”+“来自exampleStruct的值,变量y”
如果您认为可以在foo()
中使用examplestuct->z
,那么为什么不examplestuct->x
和examplestuct->y
?它们是同一结构变量的成员。肯定会有用的。试着写
struct smth test;
test.a=0;
strncpy(test.word,"hello",5);
你可以
exampleStruct->z = exampleStruct->x + exampleStruct->y;
你得到的是一个指针结构。究竟什么是
examplestuct->z=“examplestuct的值,变量x”+“examplestuct的值,变量y”代码>z
是一个int
而不是char*
@CoolGuy。不需要编辑第一个单词,IMHO.:-p这个答案是一个很好的例子,说明了一个新手问题的好答案是如何精心设计的!你会成为一个好老师…:-)@谢谢你的夸奖,先生。:-)@苏拉夫·戈什,非常感谢!很抱歉,我通过我的教授找到了答案,并且没有经常使用stackexchange。你的回答确实帮助我理解使用指针的逻辑,因此我非常感谢你的回答:)
struct smth test;
test.a=0;
strncpy(test.word,"hello",5);
exampleStruct->z = exampleStruct->x + exampleStruct->y;
exampleStruct->z = exampleStruct->x + exampleStruct->y;