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
}
扩展资料
#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
此时是几不就行了嘛!!