C语言大神求解,,我想知道我哪里出错了

如题所述

三个问题:

1.结构体模板创建语法不对,最后一个}后应当有分号“;”。

2.结构体模板在主函数中创建,那么在主函数外的自定义函数f中就是不可见的,而这个函数的形式参数使用了在主函数中创建的结构体模板类型。所以这连编译都通不过。

3.*parr.age=26;一句有问题:在这里*是“取内容”,而.是“取成员”,*比.低一级,所以会被编译器解释为*(parr.age)=26;,这显然不是你想要的!要写成(*parr).age=26;才对。

改进:应当把结构体模板提前到函数f前创建。如下就行——

//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
struct student{
    int age;
    int score;
};
void f(struct student *parr){
    (*parr).age=26;
    parr->score=15;
}
int main(void){
    struct student a={15,48};
    f(&a);
    printf("%d %d\n",a.age,a.score);
    return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-03-07
结构体拿到最前面去定义 不要在main函数里定义
第2个回答  2015-03-07
结构体要带分号的追问

加上了分号了,不知道怎么还是错的

相似回答