黑马程序员技术交流社区

标题: c语言结构体问题 [打印本页]

作者: 张海龙重新起航    时间: 2014-4-9 15:22
标题: c语言结构体问题
本帖最后由 张海龙重新起航 于 2014-4-10 07:44 编辑

比如说定义了一个结构体:
typedef struct
{
    int score;
    int age;
   
}Stu;

然后在函数里面调用这个结构体,要用for循环调用很多次这个信息并且存储每一个信息,该怎么存储?(我知道一种方法可以在结构体里定义一个指针,该怎么定义和运用?)






作者: 一只小菜鸟    时间: 2014-4-9 15:27
  1. typedef struct{
  2. int a;
  3. char b;
  4. }PP;
  5. //放在不同的对象里吧
  6. pp p1={1,'a'}
  7. pp p2={2,'b'}
复制代码


作者: 张海龙重新起航    时间: 2014-4-9 16:25
一只小菜鸟 发表于 2014-4-9 15:27

不是这意思~~比如说定义了一个结构体:
typedef struct
{
    int score;
    int age;
   
}Stu;

然后在函数里面调用这个结构体,要用for循环调用很多次这个信息并且存储每一个信息,该怎么存储?(我知道一种方法可以在结构体里定义一个指针,该怎么定义和运用?)

作者: 一只小菜鸟    时间: 2014-4-9 17:18
你的意思我还是不太懂,这算是用for循环存储多个对象的值吧。。
  1. typedef struct
  2. {
  3.     int score;
  4.     int age;
  5.    
  6. }Stu;

  7. void tes(){
  8.     int a,b;
  9.     Stu *p;
  10.     char *stu[]={"st1","st2","st3"};
  11.     for (int i=0; i<3; i++) {
  12.         Stu stu[i];
  13.         p=&stu[i];
  14.         scanf("%d %d",&a,&b);
  15.         printf("输入你要存数的值");
  16.         (*p).age=a;
  17.         (*p).score=b;
  18.         printf("st[%d].age=%d,st[%d].score=%d\n",i+1,p->age,i+1,p->score);
  19.     }
  20. }

  21. int main(){
  22.     tes();
  23.     return 0;
  24. }
复制代码

指针指向的是一个结构体对象,必须新建对象,才能存储新的值,否则就算定义了多个指针,但还是指向的是同一个对象,改变的仍然是那个值。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2