问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言如何给结构体指针赋值?

发布网友 发布时间:2022-04-30 03:51

我来回答

3个回答

热心网友 时间:2023-10-10 11:43

结构体数组指针作为函数参数,通过数组的首地址与偏移量对结构体数组进行scanf的赋值,在函数中通过指针间接访问到其指向的内存。

举例:编写函数,输入5个学号(int),5个姓名(字符串),5个成绩数组(每组三个成绩)(int[3]),依次调用函数

#include <stdio.h>

#include <stdlib.h>

struct student  //建立结构体,学号,姓名,3门课的分数

{

int num;

char name[10];

int score[3];

}Stu[5];          //初始化,一共5个学生的数据

void getScore(struct student * p)  //函数:向结构体读取分数,一共三门课

{

int i, j;

for (i = 0; i < 5; i++)

for (j = 0; j < 3; j++)

scanf_s("%d", (&(p+i)->score[j]));

}

void getNum(struct student * p)  //函数:向结构体读取学号

{

int i;

for (i = 0; i < 5;i++)

scanf_s("%d", &(p + i)->num);

}

void getName(struct student * p)  //函数:向结构体读取姓名

{

int i;

for (i = 0; i < 5; i++)

scanf("%s", &(p + i)->name);

}

int main()

{

int i, j, average[3] = { 0 };   //average数组储存每门课的平均分

getNum(Stu);            //函数调用

getName(Stu);

getScore(Stu);

for (j = 0; j < 3; j++)

{

for (i = 0; i < 5; i++)

average[j] += Stu[i].score[j];

}

for (i = 0; i < 5; i++)

{

printf("num = %d name = %s Score:", Stu[i].num, Stu[i].name);  //依次打印学号 姓名

//printf("%d %d %d", Stu[0].score[0],Stu[0].score[1],Stu[0].score[2]);

for (j = 0; j < 3; j++)    //打印三门课的分数

printf(" %d", Stu[i].score[j]);

printf("\n");

}

printf("average:");

for (i = 0; i < 3; i++)

printf("%f ", (float)average[i]/5);   //打印三门课平均分

printf("\n");

system("pause");

return 0;

}

如:

scanf("%c%c%c",&a,&b,&c);

输入为:

d e f

则把'd'赋予a, ' '(空格)赋予b,'e'赋予c。因为%c 只要求读入一个字符,后面不需要用空格作为两个字符的间隔,因此把' '作为下一个字符送给b。

只有当输入为:def(字符间无空格) 时,才能把'd'赋于a,'e'赋予b,'f'赋予c。

热心网友 时间:2023-10-10 11:44

char *chars1 = char1; 左边的chars1是char指针,右边的char1是char,类型不匹配,改一下数据类型就好了。

热心网友 时间:2023-10-10 11:44

第二行的写法很新颖,所以编译器不认识。第三行赋字符串值,可以用strcpy函数
c语言结构体函数指针怎么赋值

结构体指针就是这个指针变量的值必须指向存放该结构体的内存位置。当这个指针没有任何指向时,可以赋值为null值,但是改指针不可使用,程序中应该做判断。下面是一些赋值演示。struct student{ int id;int score;} aaa;struct student *p = null;//结构体指针p初始化赋值为null struct student *p2=&amp;a...

C语言中怎么给一个结构体用scanf进行赋值?

结构体数组指针作为函数参数,通过数组的首地址与偏移量对结构体数组进行scanf的赋值,在函数中通过指针间接访问到其指向的内存。举例:编写函数,输入5个学号(int),5个姓名(字符串),5个成绩数组(每组三个成绩)(int[3]),依次调用函数 include &lt;stdio.h&gt; include &lt;stdlib.h&gt; struct student ...

C语言怎么给结构体里的结构体赋值?

如果 int a[][2] = { 2,2}这是正确的,但是定义数组之后再 a = { 2,2}是不正确的, 你还是一个一个赋值吧. 另外说明一下吧, 定义的时候是给变量申请内存, 编译器会把你初始话的值赋值到内存, 但是如果 以后在赋值的时候, 就成了指针了, 语法就不正确了 m1-&gt;edges= { {0,1,0,0}...

C/C++编程笔记:C语言结构体想要直接赋值,应该如何实现?

从结果可以看出,C语言中结构体的直接赋值是可行的。我们可以通过查看struct_assign()函数的汇编实现,从底层了解C语言是如何实现两个结构体之间的赋值操作的。这段汇编比较简单,由于结构体的对齐特性,sizeof(struct Foo)为16,通过四次movl操作将foo1的结构体内容拷贝到结构体foo2中。从汇编上可以看出...

c语言函数能不能返回结构体

c语言函数可以返回结构体,操作方法如下:1、首先在电脑中打开visual studio新建项目,给这个结构体取个名字叫student。2、然后添加变量,如下图所示。3、然后给结构体类型指针p申请堆空间,如下图所示。4、接着使用for循环给结构体赋值,如下图所示。5、最后在通过for循环打印输出,这样就完成就结构体...

c语言结构体里的一个元素如何赋值

如果弄的是结构数组,那就给学好设置为负数表示无效记录就可以了啊,循环的时候加上一个判断,如果是链表或者树,可以直接删除的,呵呵,不知道问的是不是这个意思 array[ i ].data = xxx;这样可以吗?array[ i ]需要改变的结构 array[ i ].data 该结构的元素 xxx新的值 不知道是不是这个意思,呵呵,...

C语言结构体数组的定义和赋值

intmain(void){ structstudentsbao={};printf("%d,%s\n",bao.id,bao.name);//输出是4224528,空(应该是null)//structstudentsbao={3,"123"};可以。第一种赋值方法 //strcpy(bao.name,"bao");//可以,//printf("%d,%s\n",bao.id,bao.name);//bao.name="bao";错误“stray'\351'in...

在C语言中,一个结构体数组,成员的指针函数。怎样对这个指针赋值?

定义一个函数:void f(void *d){ } {ReadData,0,0,f}。

请教C语言问题,关于通过函数给结构体成员赋值

不知道你这又是哪位学艺不精的C语言大师编的书,别的不说,那个自定义函数getdata就不规范,居然定义的时候不说明返回值类型,这水平也真敢出书。从main函数开始读,先定义一个结构体变量a,然后调用getdata函数,其参数是一个类型为指针类型的结构体变量,功能为读入形参结构体变量的s和t变量,把a的...

C语言如何为结构体中的某个属性赋值

C语言中,数组间不能相互赋值——这是历史遗留问题,当年在B语言中,数组名和指针名是没有区别的(除了数组名定义时自动为数组分配内存),数组名可以指向别的对象或数组。换句话说,数组名之间的赋值是浅赋值。后来C语言的设计者发现这种规则在C语言行不通,但是C语言的设计者又不想破坏对B语言的兼容...

c语言结构体指针赋值 c语言结构体函数指针怎么赋值 c语言指向结构体数组的指针 c语言struct结构体指针 c语言结构体赋值 c语言结构体指针变量 c语言结构体函数指针 c语言返回结构体指针 c语言结构体指针做函数参数
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
魔兽世界51级在哪刷本 - 精华知识 魔兽世界51级BLSS怎么升级? 乌龟的尾巴有什么用? 将这一素材扩写成一篇作文,重点写事例 组装电脑怎么把电脑恢复到最先买到的状态? 从上海虹桥机场到浦东川沙镇合庆工业园东方久乐汽车安全气囊公司,怎么... 假牙吞进肚子里怎么办 卡西欧登山表 请问卡西欧登山表PRW-3500的防水性怎样? 飞鹤星蕴有喝的吗?打算给宝宝买这款奶粉,大家可以给点建议吗?_百度知 ... C++如何给结构体数据成员赋值 缀行甚远中远的意思 途中两狼,缀行甚远.译文是? “一屠晚归担中肉尽只有剩骨途中两狼缀行甚远”应该如何翻译? 一屠晚归担中肉尽只有剩骨途中两狼缀行甚远翻译是什么? 缀行甚远是什么意思 缀行甚远的缀古今异义词 缀和辍的区别 缀是什么意思 缀行甚远的缀的意思 顾野有麦场的顾的意思 弛担持刀的弛的意思 一狼洞其中的洞的意思 NBA在21世纪中有哪些队伍做到了不交奢侈税也夺冠? 缀在古诗文中到底是什么意思 你觉得NBA最强的夺冠球队都有哪些? 缀行的缀是什么意思 缀行甚远的意思是什么 途中两狼,缀行甚远 中的“缀”是啥意思? 17年总决赛,杜兰特场均35.2分当选FMVP,那詹皇什么数据? 文言文《狼》中,“缀行甚远”的缀行是什么意思? 勇士队球员名单2017 缀行甚远 缀:古义 ,今义 如何给结构体数组赋值 如何给结构体数组赋初值? 结构体怎么给结构体赋值 c语言 对结构体成员赋值问题。 C++ 给结构体赋值的问题 给结构体中的变量赋值 通过函数给结构体赋值.. 罗志祥多人运动事件是真的吗 罗志祥干了这么多*三观的事,为什么在娱乐圈却能滴水不漏? 当初罗志祥事件女主嫩照被扒出后,为啥有网友说“难怪周扬青被弃”? 从李雨桐到周扬青,网红姐姐们手撕前任后为何都过得这么好? 过生日可以去哪些安静一点,没有外人的地方? 你住过三亚保利瑰丽酒店吗?觉得怎么样? 罗志祥的私生活到底有多混乱? 抢鸡蛋意思是 女孩对男孩说我还以为你喜欢我 太害怕了 女孩是什么意思 周扬青千字文后,罗志祥前女友发文庆祝!被爆曾是哪位明星的朋友?_百度... 来几句噎人的搞笑话语。 老师给别人量身定做高考学习计划,我没有,大侠们帮我定一个呗 魔兽世界51级在哪升级最快?