C语言结构体数组成员怎么赋值?

Python09

C语言结构体数组成员怎么赋值?,第1张

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'inprogram”其他是乱码,

//bao.name[0]='a'

//bao.name[0]='/0'

//printf("%d,%s\n",bao.id,bao.name)

/*这样可以,*/

//chararr[10]="baobao"

////bao.name=arr//error"assignmenttoexpressionwitharraytype"

//scanf("%s",bao.name)//可以,

//printf("%d,%s\n",bao.id,bao.name)

//所以scanf那一类函数都可以。

//还有就是memcpy函数也是可以的

return0

}

扩展资料

C语言结构体数组的直接赋值及数组的长度计算:

#include<stdio.h>

//自定义一个字符串的结构体,包含字符串和字符串长度两个变量

typedefstructStr{

charch[100]

intlength//char数组(字符串)的长度

}myStr

//刚开始声明变量时每个变量的字符串长度length都为0

//这里以长度为10的数组为例,数组长度是1000

//对第0个到第9个结构体数组的长度同时赋值为0

myStrmyStr1[10]={

[0...9]={

.length=0,

}

}

intmain(){

inti

for(i=0i<10i++){

printf("%d\n",myStr1[i].length)

}

return0

}

先以数组名加下标,访问对应的结构体变量。

然后再以.成员名的方式,访问数组名。

最终以数组名加下标的方式,访问具体的数组元素。

比如

struct test

{

char a[100]

}

在定义

struct test t[20]

的情况下,访问t的第i个元素中,a的第j个字符的代码,可以写作

t[i].a[j]

你不是person[50]吗?

那么person[0]就是第一个人的,person[49]就是第50个人的喔。

你存入资料的时候应该会用person[i].name

person[i].num这样的形式输入啊。只要看看

i

此时是几不就行了嘛!!