public:
.....
double x;
double y;
......
};
main()
{
.....
STU stu[10];
for(i=0;i<7;i++)
{
t=f(&stu[j]); //1、这里参数中,不写j可以吗?是不是默认的第j个元素?
.....
}
}
double f(STU* stu) //2、是把实参stu[j](即把实参数组stu中第j个元素)的所有成员都传到形参stu中了吗?
{ //3、 这里表示单个元素的形参名与实参名相同,合理吗?
....
stu->x=b; //4、 这时形参的改变也会使实参对应的第j个元素的成员该变吧?
stu->y=c;
...
}
请各位高手多多指点,谢谢了!
5 个解决方案
#1
1.j表示第j个stu的元素。需要指定stu的索引值
2.传递第j个元素地址,可以通过地址访问它的成员
3.可以相同,自己分清就可以
4.通过指针,可以修改元素内容
2.传递第j个元素地址,可以通过地址访问它的成员
3.可以相同,自己分清就可以
4.通过指针,可以修改元素内容
#2
for(i=0;i <7;i++)
{
t=f(&stu[j]); //1、这里参数中,不写j可以吗?是不是默认的第j个元素?
..... 信息不够,难以判断,关键j怎么定义的
}
}
double f(STU* stu) //2、是把实参stu[j](即把实参数组stu中第j个元素)的所有成员都传到形参stu中了吗?
形参是一个指向STU的指针,传参只是把指针的副本传进去,不是把指针所指的东西传进去,不过函数里可以通过stu指针去修改指向的对象
{ //3、 这里表示单个元素的形参名与实参名相同,合理吗?
.... 形参是函数作用域的一部分,所以可以这样声明
stu->x=b; //4、 这时形参的改变也会使实参对应的第j个元素的成员该变吧? 会的,就像上面说的可以改变stu指向的对象
stu->y=c;
...
{
t=f(&stu[j]); //1、这里参数中,不写j可以吗?是不是默认的第j个元素?
..... 信息不够,难以判断,关键j怎么定义的
}
}
double f(STU* stu) //2、是把实参stu[j](即把实参数组stu中第j个元素)的所有成员都传到形参stu中了吗?
形参是一个指向STU的指针,传参只是把指针的副本传进去,不是把指针所指的东西传进去,不过函数里可以通过stu指针去修改指向的对象
{ //3、 这里表示单个元素的形参名与实参名相同,合理吗?
.... 形参是函数作用域的一部分,所以可以这样声明
stu->x=b; //4、 这时形参的改变也会使实参对应的第j个元素的成员该变吧? 会的,就像上面说的可以改变stu指向的对象
stu->y=c;
...
#3
for(
j=0;j <7;j++)
刚才写错了,是j不是i。
{
t=f(&stu[j]); //1、这里参数中,不写j可以吗?是不是默认的第j个元素?
..... 信息不够,难以判断,关键j怎么定义的
}
}
double f(STU* stu) //2、是把实参stu[j](即把实参数组stu中第j个元素)的所有成员都传到形参stu中了吗?
形参是一个指向STU的指针,传参只是把指针的副本传进去,不是把指针所指的东西传进去,不过函数里可以通过stu指针去修改指向的对象 这里我不明白:“传参只是把指针的副本传进去,不是把指针所指的东西传进去”能具体一点吗?副本是什么?(是成员的值吗?)指针所指的东西是什么?(是地址吗?)
{
//3、 这里表示单个元素的形参名与实参名相同,合理吗?
.... 形参是函数作用域的一部分,所以可以这样声明
stu->x=b; //4、 这时形参的改变也会使实参对应的第j个元素的成员该变吧? 会的,就像上面说的可以改变stu指向的对象
stu->y=c;
...
谢谢各位高手的指点,不过我还有疑惑,请高手指点一下。多谢了!
{
t=f(&stu[j]); //1、这里参数中,不写j可以吗?是不是默认的第j个元素?
..... 信息不够,难以判断,关键j怎么定义的
}
}
double f(STU* stu) //2、是把实参stu[j](即把实参数组stu中第j个元素)的所有成员都传到形参stu中了吗?
形参是一个指向STU的指针,传参只是把指针的副本传进去,不是把指针所指的东西传进去,不过函数里可以通过stu指针去修改指向的对象 这里我不明白:“传参只是把指针的副本传进去,不是把指针所指的东西传进去”能具体一点吗?副本是什么?(是成员的值吗?)指针所指的东西是什么?(是地址吗?)
{
//3、 这里表示单个元素的形参名与实参名相同,合理吗?
.... 形参是函数作用域的一部分,所以可以这样声明
stu->x=b; //4、 这时形参的改变也会使实参对应的第j个元素的成员该变吧? 会的,就像上面说的可以改变stu指向的对象
stu->y=c;
...
谢谢各位高手的指点,不过我还有疑惑,请高手指点一下。多谢了!
#4
看你的逻辑了,从这个for循环的逻辑看就是遍历stu数组把数组里的STU对象的地址传给f函数处理,不写j怎么遍历啊?
#5
for(j=0;j <7;j++) 刚才写错了,是j不是i。
{
t=f(&stu[j], j); //1、这里参数中,不写j可以吗?是不是默认的第j个元素?
..... 信息不够,难以判断,关键j怎么定义的
}
}
double f(STU* stu, int j) //2、是把实参stu[j](即把实参数组stu中第j个元素)的所有成员都传到形参stu中了吗?
形参是一个指向STU的指针,传参只是把指针的副本传进去,不是把指针所指的东西传进去,…
那也就是说必须如上面所该了,
看你的逻辑了,从这个for循环的逻辑看就是遍历stu数组把数组里的STU对象的地址传给f函数处理,不写j怎么遍历啊?
其实我指的是既然 t=f(&stu[j]),这时for循环,所以j已经是具体的数值了&stu[j]中已经包括了j,所以我觉得不需要再写参数了。
我这种想法是不有错,请高手指点!谢谢了!!!
{
t=f(&stu[j], j); //1、这里参数中,不写j可以吗?是不是默认的第j个元素?
..... 信息不够,难以判断,关键j怎么定义的
}
}
double f(STU* stu, int j) //2、是把实参stu[j](即把实参数组stu中第j个元素)的所有成员都传到形参stu中了吗?
形参是一个指向STU的指针,传参只是把指针的副本传进去,不是把指针所指的东西传进去,…
那也就是说必须如上面所该了,
看你的逻辑了,从这个for循环的逻辑看就是遍历stu数组把数组里的STU对象的地址传给f函数处理,不写j怎么遍历啊?
其实我指的是既然 t=f(&stu[j]),这时for循环,所以j已经是具体的数值了&stu[j]中已经包括了j,所以我觉得不需要再写参数了。
我这种想法是不有错,请高手指点!谢谢了!!!
#1
1.j表示第j个stu的元素。需要指定stu的索引值
2.传递第j个元素地址,可以通过地址访问它的成员
3.可以相同,自己分清就可以
4.通过指针,可以修改元素内容
2.传递第j个元素地址,可以通过地址访问它的成员
3.可以相同,自己分清就可以
4.通过指针,可以修改元素内容
#2
for(i=0;i <7;i++)
{
t=f(&stu[j]); //1、这里参数中,不写j可以吗?是不是默认的第j个元素?
..... 信息不够,难以判断,关键j怎么定义的
}
}
double f(STU* stu) //2、是把实参stu[j](即把实参数组stu中第j个元素)的所有成员都传到形参stu中了吗?
形参是一个指向STU的指针,传参只是把指针的副本传进去,不是把指针所指的东西传进去,不过函数里可以通过stu指针去修改指向的对象
{ //3、 这里表示单个元素的形参名与实参名相同,合理吗?
.... 形参是函数作用域的一部分,所以可以这样声明
stu->x=b; //4、 这时形参的改变也会使实参对应的第j个元素的成员该变吧? 会的,就像上面说的可以改变stu指向的对象
stu->y=c;
...
{
t=f(&stu[j]); //1、这里参数中,不写j可以吗?是不是默认的第j个元素?
..... 信息不够,难以判断,关键j怎么定义的
}
}
double f(STU* stu) //2、是把实参stu[j](即把实参数组stu中第j个元素)的所有成员都传到形参stu中了吗?
形参是一个指向STU的指针,传参只是把指针的副本传进去,不是把指针所指的东西传进去,不过函数里可以通过stu指针去修改指向的对象
{ //3、 这里表示单个元素的形参名与实参名相同,合理吗?
.... 形参是函数作用域的一部分,所以可以这样声明
stu->x=b; //4、 这时形参的改变也会使实参对应的第j个元素的成员该变吧? 会的,就像上面说的可以改变stu指向的对象
stu->y=c;
...
#3
for(
j=0;j <7;j++)
刚才写错了,是j不是i。
{
t=f(&stu[j]); //1、这里参数中,不写j可以吗?是不是默认的第j个元素?
..... 信息不够,难以判断,关键j怎么定义的
}
}
double f(STU* stu) //2、是把实参stu[j](即把实参数组stu中第j个元素)的所有成员都传到形参stu中了吗?
形参是一个指向STU的指针,传参只是把指针的副本传进去,不是把指针所指的东西传进去,不过函数里可以通过stu指针去修改指向的对象 这里我不明白:“传参只是把指针的副本传进去,不是把指针所指的东西传进去”能具体一点吗?副本是什么?(是成员的值吗?)指针所指的东西是什么?(是地址吗?)
{
//3、 这里表示单个元素的形参名与实参名相同,合理吗?
.... 形参是函数作用域的一部分,所以可以这样声明
stu->x=b; //4、 这时形参的改变也会使实参对应的第j个元素的成员该变吧? 会的,就像上面说的可以改变stu指向的对象
stu->y=c;
...
谢谢各位高手的指点,不过我还有疑惑,请高手指点一下。多谢了!
{
t=f(&stu[j]); //1、这里参数中,不写j可以吗?是不是默认的第j个元素?
..... 信息不够,难以判断,关键j怎么定义的
}
}
double f(STU* stu) //2、是把实参stu[j](即把实参数组stu中第j个元素)的所有成员都传到形参stu中了吗?
形参是一个指向STU的指针,传参只是把指针的副本传进去,不是把指针所指的东西传进去,不过函数里可以通过stu指针去修改指向的对象 这里我不明白:“传参只是把指针的副本传进去,不是把指针所指的东西传进去”能具体一点吗?副本是什么?(是成员的值吗?)指针所指的东西是什么?(是地址吗?)
{
//3、 这里表示单个元素的形参名与实参名相同,合理吗?
.... 形参是函数作用域的一部分,所以可以这样声明
stu->x=b; //4、 这时形参的改变也会使实参对应的第j个元素的成员该变吧? 会的,就像上面说的可以改变stu指向的对象
stu->y=c;
...
谢谢各位高手的指点,不过我还有疑惑,请高手指点一下。多谢了!
#4
看你的逻辑了,从这个for循环的逻辑看就是遍历stu数组把数组里的STU对象的地址传给f函数处理,不写j怎么遍历啊?
#5
for(j=0;j <7;j++) 刚才写错了,是j不是i。
{
t=f(&stu[j], j); //1、这里参数中,不写j可以吗?是不是默认的第j个元素?
..... 信息不够,难以判断,关键j怎么定义的
}
}
double f(STU* stu, int j) //2、是把实参stu[j](即把实参数组stu中第j个元素)的所有成员都传到形参stu中了吗?
形参是一个指向STU的指针,传参只是把指针的副本传进去,不是把指针所指的东西传进去,…
那也就是说必须如上面所该了,
看你的逻辑了,从这个for循环的逻辑看就是遍历stu数组把数组里的STU对象的地址传给f函数处理,不写j怎么遍历啊?
其实我指的是既然 t=f(&stu[j]),这时for循环,所以j已经是具体的数值了&stu[j]中已经包括了j,所以我觉得不需要再写参数了。
我这种想法是不有错,请高手指点!谢谢了!!!
{
t=f(&stu[j], j); //1、这里参数中,不写j可以吗?是不是默认的第j个元素?
..... 信息不够,难以判断,关键j怎么定义的
}
}
double f(STU* stu, int j) //2、是把实参stu[j](即把实参数组stu中第j个元素)的所有成员都传到形参stu中了吗?
形参是一个指向STU的指针,传参只是把指针的副本传进去,不是把指针所指的东西传进去,…
那也就是说必须如上面所该了,
看你的逻辑了,从这个for循环的逻辑看就是遍历stu数组把数组里的STU对象的地址传给f函数处理,不写j怎么遍历啊?
其实我指的是既然 t=f(&stu[j]),这时for循环,所以j已经是具体的数值了&stu[j]中已经包括了j,所以我觉得不需要再写参数了。
我这种想法是不有错,请高手指点!谢谢了!!!