永发信息网

C语言,,,求解释和结果,,麻烦各位了

答案:6  悬赏:60  手机版
解决时间 2021-12-31 19:59
  • 提问者网友:心牵心
  • 2021-12-31 04:39
struct stu
{ int num;
char name[10];
int age;
};
void fun(struct stu*p)
{ printf("%s\",p->name);}
main()
{ struct stu students[3]={{201001,"Shang",19},
{201002,"Zhang",18},
{201003,"Chang",18}};
fun(students+2);
}
最佳答案
  • 五星知识达人网友:归鹤鸣
  • 2021-12-31 04:57
struct stu
{
int num;
char name[10];
int age;
}; //结构体
void fun(struct stu*p)
{ printf("%s\",p->name);}//以字符串的形式输出传递过来的结构体内的name项
main()
{ struct stu students[3]={{201001,"Shang",19},
{201002,"Zhang",18},
{201003,"Chang",18}}; //实例化3个结构体
fun(students+2); //调用fun函数,students是指students[0],加1是指students[1],加2是指students[2]
}
全部回答
  • 1楼网友:怀裏藏嬌
  • 2021-12-31 08:44
chang//数组名代表首地址students+2相当于students[2];
  • 2楼网友:独行浪子会拥风
  • 2021-12-31 08:21
定义了一个stu结构体对象数组 并进行了初始化 最后调用fun(students+2); 其中students 是201001,"Shang",19 students+1 是201002,"Zhang",18 students 是201001,"Chang",18 所以打印的结果是 Chang
  • 3楼网友:痴妹与他
  • 2021-12-31 07:15
将结点p插入头结点h之前 为什么是 p->next = head;//将新增结点p的next指向head,这一步将新增的结点p加入了链表,但是还不能通过head在链表中被找到。 head = p;//更新head结点,这时候把head指向了结点p,而结点p指向了原来的head结点,这时新结点p已经可以通过head在链表中查找到了。 指针q指向头结点,要删除此结点为什么是 h = h->next;//在执行这一步之前,肯定要先用一个变量q将当前头结点保存下来,否则在执行这一步后将出现原来的头结点因为失去引用而产生内存泄漏。这一步的主要作用是移动头结点。 free(q);//释放原头结点所占用的内存,你可能问为什么在这里使用q释放,而不是一开始就直接来个free(h)完事。这是因为如果你直接这样做那么h所指向那个结点的内存将被释放成为h=null,但是h结点之后的那些结点所占用的内存却并没有释放,结果就是那些内存失去了引用。产生内存空间泄漏。
  • 4楼网友:动情书生
  • 2021-12-31 06:47
struct stu { int num; char name[10]; int age; }; -- 定义结构,结构名 stu, 成员 依次是 学号,姓名,年龄。 void fun(struct stu*p) { printf("%s\n",p->name);} -- 声明和定义函数,参数是 指向 stu 结构的指针,功能是打印该结构成员姓名。 struct stu students[3]={{。。}} -- 声明 students 是stu型的结构数组。等号后面是对 结构数组 3 个元素 初始化。 fun(students+2); -- 函数调用,students 是 stu型的结构数组 的首地址,students+2 等同 students[2] 的地址。也就是第三个学生 学号 201003, 姓名Chang, 年龄 18。 打印 students[2] -> name 输出 Chang.
  • 5楼网友:过活
  • 2021-12-31 05:26
struct stu //定义一个有三个成员的结构变量 { int num; char name[10]; int age; }; void fun(struct stu*p) //输出一个人的姓名 { printf("%s\",p->name);} main() { struct stu students[3]={{201001,"Shang",19}, //按上面结构类型开辟三个单元,初始化赋值三个人的信息 {201002,"Zhang",18}, {201003,"Chang",18}}; fun(students+2); //输出第三个人的姓名(students+0为第一个,students+1 为第二个) }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯