要给stu[0].name赋值该怎么写啊?我这样写是错的。
typedef struct student
{int num;
char name[8];
}st;
void infor(st stu[N])
{stu[0].name="aa";
stu[1].name="bb";
...
}
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=0;i<10;i++){
printf("%d\n",myStr1[i].length);
}
return0;
}
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...
结构体变量赋值方法?
1按字符赋值。如结构体变量为a,成员为字符数组s[10];那么可以 for(i=0;i10;i++)a.s[i]=xxx;xxx可以是任意字符。比如getchar(),即从终端读取。2用strcpy赋值。如 strcpy(a.s,"test");就是将字符数组赋值为"test"。3用memcpy赋值。如 memcpy(a.s,"test2",3);就是将a.s的前三个字符...
结构体二维数组的赋值与定义
结构体二维数组的赋值可对结构体变量的成员逐个赋值,这种方式和数组相像,数组就是逐个元素逐一赋值,不同于数组,标准C中结构体变量可以整体赋值。结构体二维数组是由一系列具有相同类型或不同类型的数据构成的数据集合,叫做结构,在C语言中,结构体指的是一种数据结构,是C语言中聚合数据类型的一类,结...
c语言结构体数组赋值
char c[]={‘c’,‘’,‘p’,‘r’,‘o','g','r','a','m','\\0'};
C语言中怎么给一个结构体用scanf进行赋值?
结构体数组指针作为函数参数,通过数组的首地址与偏移量对结构体数组进行scanf的赋值,在函数中通过指针间接访问到其指向的内存。举例:编写函数,输入5个学号(int),5个姓名(字符串),5个成绩数组(每组三个成绩)(int[3]),依次调用函数 include <stdio.h> include <stdlib.h> struct student ...
如何给结构体数组赋值?
C语言只有在定义字符数组的时候才能用“=”来初始化变量,其它情况下是不能直接用“=”来为字符数组赋值的,要为字符数组赋值可以用string.h头文件中的strcpy函数来完成。例如:char a[10] = "123"; \/*正确,在定义的时候初始化*\/ char a[10];a = "123"; \/*错误,不能用“=”直接为字符...
在c语言标准中结构体之间是否可以直接赋值?
结构体在C语言中用于组合多个数据类型,它们能够存放不同或相同类型的多个数据。在定义结构体之后,可以通过初始化结构体变量或使用结构体数组来操作它们。结构体定义只表示一种类型,并没有为结构体成员分配实际内存空间。因此,直接对结构体进行赋值是不正确的。例如,定义一个名为“Tea”的结构体,它...
C语言中怎么给数组赋初值
数组赋值可以通过以下几种方法:1、定义的时候直接赋初值(用{});2、用循环语句依次给数组各元素赋值;3、将数组放在一个结构体里面,通过结构体的引用给数组整体赋值;(数组本身不能直接整体赋值)
C\/C++编程笔记:C语言结构体想要直接赋值,应该如何实现?
从结果可以看出,C语言中结构体的直接赋值是可行的。我们可以通过查看struct_assign()函数的汇编实现,从底层了解C语言是如何实现两个结构体之间的赋值操作的。这段汇编比较简单,由于结构体的对齐特性,sizeof(struct Foo)为16,通过四次movl操作将foo1的结构体内容拷贝到结构体foo2中。从汇编上可以看出...
求助一个C语言结构体数组赋初值的问题
price; int d;} Test;对结构体赋值,一般是顺序赋值,或者指定赋值 比如 Test test[] = { {1, "abc", 1, 2, 1.2, 3},\/\/对应id, name, level, stock, price, d {.id = 2, .level=3, price=4.2, .stock=2},\/\/这个就是指定赋值,点后面接的是结构体成员名};