帮小弟看看这个

2025-12-16 15:07:38
推荐回答(4个)
回答1:

结构是一个“模具”,它本身是不能干什么的,只有用它做出来的产品才能使用。
况且。。。ptr->field = val;是在是很莫名的调用。。
ptr还没赋过值(指向某个char变量),你怎么调用???
如果你想用指针调用field结构的变量,
那么指针类型也要相符,也就是说,指针也要是field类型的。

你对指针还不够理解。
为什么指针会有类型??
指针的实际作用是告诉编译器,该在内存空间里为指针所指向的对象分配多大的内存。
如果
int *b;
那么编译器就知道:
在内存里分配一个4字节大小的空间,同时这个空间的“门牌号”是b
同样field结构在内存里也是有大小的,必须用相应的指针才能让编译器分配相应大小的空间。

基本就是这个意思。。如果还是不理解,那就只有靠你自己以后再理解了。

回答2:

你的ptr是个什么东西,凭什么就调用了field,你应该赶快找一本入门书籍从头到尾好好看看,然后再来研究这个问题,现在是没有意义的。整个看来你的程序基础约等于零,根本就没法调这个程序。还是回去从头开始学习吧。。

回答3:

#include
using namespace std;

struct field
{
int x;
int y;
};

int main()
{

struct field f, *ptr;

f.x = 1;
f.y = 2;

cout << f.x< cout << f.y<
ptr = &f;

cout << ptr->x< cout << ptr->y<
return 0;
}

回答4:

这程序可以把编译器搞到精神错乱。 我看你还是先别琢磨这个事了, 先使劲看俩月书再说吧