- 再也不做站长了
-
intmain(void){
structstudentsbao={};
printf("%d,%s ",bao.id,bao.name);//输出是4224528,空(应该是null)
//structstudentsbao={3,"123"};可以。第一种赋值方法
//strcpy(bao.name,"bao");//可以,
//printf("%d,%s ",bao.id,bao.name);
//bao.name="bao";错误“stray"351"inprogram”其他是乱码,
//bao.name[0]="a";
//bao.name[0]="/0";
//printf("%d,%s ",bao.id,bao.name);
/*这样可以,*/
//chararr[10]="baobao";
////bao.name=arr;//error"assignmenttoexpressionwitharraytype"
//scanf("%s",bao.name);//可以,
//printf("%d,%s ",bao.id,bao.name);
//所以scanf那一类函数都可以。
//还有就是memcpy函数也是可以
return0;}
扩展资料:
选择结构:
顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用选择结构。选择结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。
选择结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的选择语句。选择结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序。
这样做把程序设计分析与语言分开,使得问题简单化,易于理解。程序流程图是根据解题分析所绘制的程序执行流程图。
参考资料来源:百度百科-c语言
- bikbok
-
intmain(void){
structstudentsbao={};
printf("%d,%s ",bao.id,bao.name);//输出是4224528,空(应该是null)
//structstudentsbao={3,"123"};可以。第一种赋值方法
//strcpy(bao.name,"bao");//可以,
//printf("%d,%s ",bao.id,bao.name);
//bao.name="bao";错误“stray"351"inprogram”其他是乱码,
//bao.name[0]="a";
//bao.name[0]="/0";
//printf("%d,%s ",bao.id,bao.name);
/*这样可以,*/
//chararr[10]="baobao";
////bao.name=arr;//error"assignmenttoexpressionwitharraytype"
//scanf("%s",bao.name);//可以,
//printf("%d,%s ",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 ",myStr1[i].length);
}
return0;
}
- 大鱼炖火锅
-
(1)用字符常量逐个初始化数组。例如:
char a[8]={"i","l","o","v","e","y","o","u"};
把8个字符依次分别赋给c[0]~c[7]这8个元素。
如果在定义字符数组时不进行初始化,则数组中各元素的值是不可预料的。如果花括号中提供的初值个数(即字符个数)大于数组长度,则出现语法错误。
如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为空字符(即" ")。
如果提供的初值个数与预定的数组长度相同,在定义时可以省略数组长度,系统会自动根据初值个数确定数组长度。
例如:char c[]={‘c",‘",‘p",‘r",‘o","g","r","a","m"};
这时c数组的长度自动定为9。也可以定义和初始化一个二维字符数组,例如:
char diamond[5][5]={{"","","#"},{"","#","","#"},{"#","","","","#"},
{"","#","","#"},{"","","#"}};用它代表一个菱形的平面图形。
(2)字符串常量初始化数组。例如:
char c[]={‘c",‘",‘p",‘r",‘o","g","r","a","m"};
可写为:char c[]={"C program"};
或去掉{}写为:char c[]="C program";
注意:此时数组c的长度不是9,而是10。因为字符串常量的最后由系统加上一个" "。上面的初始化与下面的初始化等价。
char c[]={‘c",‘",‘p",‘r",‘o","g","r","a","m"," "};
扩展资料:
其定义的一般形式是:char数组名[数据长度]
例如:
char c[10];
c[0]="I";c[1]="";c[2]="l";c[3]="o";c[4]="v";c[5]="e";c[6]="";c[7]="y";c[8]="o";c[9]="u";
以上定义了c为字符数组,包含10个元素。
由于字符型数据是以整数形式(ASCII代码)存放的,因此也可以用整型数组来存放字符数据,例如:
int c[10];
但这时每个数组元素占2个字节的内存单元,浪费存储空间。
字符数组也可以是二维或多维数组,例如:
char c[5][10];
即为二维字符数组。
初始化
字符数组的初始化与数值型数组初始化没有本质区别。但它除了可以逐个给数组元素赋予字符外,也可以直接用字符串对其初始化。
输入输出
字符数组的输入
(1)用getchar()或scanf()的"%c"格式符对数组进行字符赋值。例如,对于数组a[10]:用getchar()赋值:
for(i=0;i<10;i++)
a<i>=getchar();
用scanf()赋值:
for(i=0;i<10;i++)
scanf("%c",&a<i>);
(2)用scanf()的"%s"格式对数组赋值。还是对于数组a[10]:
scanf("%s",a);
或
scanf("%s“,&a[0]);
输入”C program“并回车时,a数组会自动包含一个以” “结尾的字符串”C program“。
字符数组的输出
(1)用putchar()或printf()的‘%c"格式符对数组进行字符赋值。例如,对于数组a[10]:用putchar()赋值:
for(i=0;i<10;i++)
a<i>=putchar();
用printf()赋值:
for(i=0;i<10;i++)
printf("%c",a<i>);
输出结果为:
c program
(2)用printf()的"%s"格式对数组赋值。还是对于数组a[10];
printf("%s",a);
输出结果为:
c program
参考资料:
百度百科——字符数组
- 北境漫步
-
1、首先打开vs2010软件,新建一个项目,如图所示。
2、里面包含头文件,如图所示。
3、然后输入入口函数main。
4、接着定义一个结构体,声明结构体变量,如图所示。
5、然后给结构体里面的成员变量赋值。
6、最后打印结构体成员,输出结果就完成了。
- 肖振
-
你程序中的那种赋值方式只能在数组定义的时候赋值,定义完成后,就要一个一个的赋值。比如:s.a[0] = 1;s.a[1] = 2;如果赋值有一定规律的话,可以用for循环;如果赋的值一样的话,可以用 memset(s.a,0,sizeof(s.a));,memset一般用于数组初始化和清零。
- 凡尘
-
对于已经定义好了的数组,肯定不能用这样赋值啦,给结构体赋值其实就跟其他的变量赋值一样,难道你可以
int a[3];
a={0,1,2};
这个给一个int数组赋值吗,不行啊。
正确的做法就是像其他变量一样一个一个赋值,当然也可在结构体初始化时赋值
- 墨然殇
-
如果没记错的话只能是数组初始定义的时候才可以这样赋值。
只能一个一个赋值,s.a[0]=1; 这样是合法的
想给数组赋值的话用循环吧
- 康康map
-
s.a[0]=1;
s.a[1]=2;
c语言结构体能否整体赋值
结构体可以整体赋值为0,如果要给数组赋值就比较麻烦,用指针会好一点2023-06-10 09:22:035
在C语言中。结构体变量之间可以相互赋值吗?
可以的,同类型的结构体变量可以。比如:struct test a,b;a=b;//这样可以的。如果是不同的类型,但是结构体没数据类型一样就要用memcpy拷贝内存(头文件string.h)。例如:struct test1 a;2023-06-10 09:22:283
结构体变量的赋值,结构体变量只能在定义时进行整体赋值吗?不能先定义a,然后给a赋值吗?为什么?
struct student{ int num; char name[20]; char sex[6]; int age;};void main(){ struct student a; a.num = 1; strcpy(a.name,"tom"); strcpy(a.sex,"male"); a.age = 18;}2023-06-10 09:22:474
结构体的赋值方法,两个结构体变量间的相互赋值
typedef struct{int ord;postype seat;int di;}Elemtype;postype curpos;Elemtype e ={1,curpos,1};这样就行了吧,你试下2023-06-10 09:22:555
C语言 结构体的赋值
前边没有结构体的定义部分吗?2023-06-10 09:23:113
如何把结构体变量赋值给字符数组
对于已经定义好了的数组,肯定不能用这样赋值啦,给结构体赋值其实就跟其他的变量赋值一样,难道你可以inta[3];a={0,1,2};这个给一个int数组赋值吗,2023-06-10 09:23:322
请教Matlab结构体变量赋值问题
1. 结构数组的创建MATLAB提供了两种定义结构的方式:直接应用和使用struct函数。a) 使用直接引用方式定义结构与建立数值型数组一样,建立新struct对象不需要事先申明,可以直接引用,而且可以动态扩充。比如建立一个复数变量x:x.real = 0; % 创建字段名为real,并为该字段赋值为0x.imag = 0 % 为x创建一个新的字段imag,并为该字段赋值为0x =real: 0imag: 0然后可以将其动态扩充为数组:x(2).real = 0; % 将x扩充为1×2的结构数组x(2).imag = 0;在任何需要的时候,也可以为数组动态扩充字段,如增加字段scale:x(1).scale = 0;这样,所有x都增加了一个scale字段,而x(1)之外的其他变量的scale字段为空:x(1) % 查看结构数组的第一个元素的各个字段的内容ans =real: 0imag: 0scale: 0x(2) % 查看结构数组的第二个元素的各个字段的内容,注意没有赋值的字段为空ans =real: 0imag: 0scale: []2023-06-10 09:23:401
请说明结构体初始化数据赋值的几种方式
main函数里面,方法里面2023-06-10 09:24:023
结构体赋值问题
是有时很难去改正,别人的不是或者别人的错误是什么,并且很习惯于给别人指点错误教其改正错误,但是有很少的人能够知道自己的错误或者缺点是什么,只有一个知道自己错误并且能够很好回避错误或者缺点的人才是真正聪明的人。2023-06-10 09:24:102
C语言结构体赋值
应该是可以。但是去掉Pri就不行了。2023-06-10 09:24:173
结构体赋值
100分都不会有人帮你做。除非有vc平台 帮你验证下2023-06-10 09:24:295
c语言 结构体成员变量为指针时如何赋值
使用&取变量的地址,赋值给指针。如果值是指针类型了,可以直接使用=赋值了。2023-06-10 09:24:432
c语言结构体中的一个char数组怎么赋值?
可以2023-06-10 09:26:077
有没有办法把一个结构体赋值给另一个结构体
结构体里有指针的话就要小心了...2023-06-10 09:27:013
不同的结构体变量能互相赋值吗
使用memcpy(&destStruct, &srcStruct, sizeof(StructType));即可直接用等号有风险,就好像指针一样,表示该结构指向另外一个结构,但是本身所在的内存并没有被赋值2023-06-10 09:27:083
如何进行整个结构体的赋值操作
lpwstr就是longpointw_string类型的字符串,一般来说可以这样赋值。如lpwstrpsztex=l"字符串"(不推荐这样),市场上的行情都是这样赋值的。lpwstrpsztex=_t("字符串"),但两者的作用的结果还是一样的。2023-06-10 09:27:152
结构体赋值给数组
对于已经定义好了的数组,肯定不能用这样赋值啦,给结构体赋值其实就跟其他的变量赋值一样,难道你可以inta[3];a={0,1,2};这个给一个int数组赋值吗,不行啊。正确的做法就是像其他变量一样一个一个赋值,当然也可在结构体初始化时赋值2023-06-10 09:27:282
vc 如何给结构体 直接赋值
S_un_b.s_b1=S_un_b.s_b2=2023-06-10 09:27:402
C语言里如何给结构体成员(一个数组)赋汉字值?
struct Type //定义了一个 Type 的数据类型{ char a[15] ; //定义了一个数组成员,最多可输入14个字符}Type s ; //用 Type 类型定义一个结构体变量 s ;s.a = " abcdef " ; //给结构体变量 s 赋值为 "abcdef" 。如果是想自己输入的话:gets( s.a ) ; 或者 scanf(" %s " , s,a ) ; //因为是数组,所以输入时候要记住的是 s.a前面是不加地址符&的。希望你全明白了,O(∩_∩)O~呵呵。2023-06-10 09:27:501
c语言 结构体变量赋值
#include "stdio.h"#include "stdlib.h"#define N 30struct date //定一个结构体date 里面包含了3个成员 { int year,month,day; };struct student //定义一个结构体student { char name[N]; //姓名 char num[N]; //编号 char sex[N]; //性别 struct date birthday; //生日 char addr[N]; //地址 int store; //分数 }//num1;main(){ int i; //定义一个student类型的数组 struct member //定义了一个member型的结构体 { char name[N]; char num[N]; char addr[N]; }mem1={"郭为","40950056","陕西省劳资市"}, mem2={"黄佳","40950057","山东省莱州市"};struct student num1={"李啥","40950025","女",{2010,6,24},"陕西省安康市",100}; //出现的错误是:syntax error:"{" for(i=0;i<4;i++) { struct student stu[N]={"李爽","40950025","男",{2010,6,24},"陕西省劳资市",100};//出现的错误是:syntax error:"{" } }改好了编译通过2023-06-10 09:27:591
c语言结构体初始化赋值
初始化的时候stu1前面少了structstudent(表示结构体类型),加上之后这样初始化就行了。就相对整型初始化时,必须intx=。。。。,不能直接x=。。。。,事实上就是语法上的一个小细节错误。2023-06-10 09:28:182
c语言可以给结构体中的变量赋值吗
可以struct.number = exp;//struct表示结构体变量,number 为结构体成员欢迎追问和评论2023-06-10 09:28:302
结构体中的成员如果是字符数组,有几种赋值方式?
三种:1按字符赋值。如结构体变量为a,成员为字符数组s[10];那么可以for(i=0;i<10;i++)a.s[i]=xxx;xxx可以是任意字符。比如getchar(),即从终端读取。2用strcpy赋值。如strcpy(a.s,"test");就是将字符数组赋值为"test"。3用memcpy赋值。如memcpy(a.s,"test2",3);就是将a.s的前三个字符赋值成"t","e","s"。2023-06-10 09:28:501
关于c语言结构体变量成员引用的问题
(1)、scanf的用法,格式后的参数都必须是地址,name是数组名,本身就是数据,age和sex都是整型数据,必须使用取地址符&;(2)、p是struct student*类型,stu是stu[3]这个数组的第一个元素的地址,p指向第一个元素,因此ABC都是对的,D错在把(int*)变量值赋值给(struct student*)变量,如果有个强制转换则不会错,因为age是结构体第一个变量,其地址就是结构体变量的地址。(3)、与(2)类似,是指针间的赋值,必须保证左右操作数的指针类型是一致的。由于n是结构体sk的第一个变量,因此其地址与结构体变量地址相同,可以强制转换得到正确的地址。(4)、c是一个二维数组,p是一个指向数组的指针,因此p的*运算都是得到一个数组,**运算才能取到数组中的值。只有D是**运算。2023-06-10 09:28:591
关于结构体成员赋值
自己专门写个函数就好了嘛,别懒哦2023-06-10 09:29:186
C语言结构体里的结构体怎么初始化
subject sub[4]你这个之间都有空格2023-06-10 09:29:365
在C语言中。结构体变量之间可以相互赋值吗?
可以的,同类型的结构体变量可以。比如: struct test a,b; a=b;//这样可以的。 如果是不同的类型,但是结构体没数据类型一样就要用memcpy拷贝内存(头文件string.h)。例如:struct test1 a;2023-06-10 09:29:541
不同的结构体变量能互相赋值吗
使用memcpy(&destStruct,&srcStruct,sizeof(StructType));即可直接用等号有风险,就好像指针一样,表示该结构指向另外一个结构,但是本身所在的内存并没有被赋值2023-06-10 09:30:022
C++ 在给结构体赋值时,其中几个参数不赋值,那这个几个参数的值是什么,是0或null吗?
C++ 中在给结构体赋值时,如果未对结构体的某些成员赋值,则这些成员的值是未定义的。也就是说,它们可能是任意值,也可能是0或null,但是没有保证。如果希望结构体的某些成员默认为0或null,可以使用初始化列表(initializer list)来赋值。例如:上面的代码中,在给结构体赋值时,使用初始化列表将变量的值指定为0或null。这样,可以保证结构体的某些成员默认为0或null。总之,C++ 中在给结构体赋值时,未对结构体的某些成员赋值,这些成员的值是未定义的。如果希望某些成员默认为0或null,可以使用初始化列表来2023-06-10 09:30:091
怎么向结构体struct里赋值?
v1.a=1,v1.ch="hello";2023-06-10 09:30:263
C语言 如何在结构体中给嵌套的结构体赋值?
加个大括号试试 {1,2,{}}2023-06-10 09:30:362
结构体有多个变量,可以只赋值其中一个变量吗?
当然可以的。不涉及的元素不操作、不访问。2023-06-10 09:30:492
在C语言中。结构体变量之间可以相互赋值吗?
1、结构体变量是可以直接赋值的。定义结构体类型,然后用这个类型定义出来的变量就是结构体变量。2、C语言在相同类型的变量间赋值时是直接内存复制的,即将他们的内存进行复制,这里因为同样结构体变量,属于同一种变量,所以赋值时是按照他们的内存分布来直接拷贝的。2023-06-10 09:31:131
C语言怎么给结构体里的结构体赋值?
*st 是 被赋值的指针,应该用st.age=1后面只是普通变量,st1.age 是获取结构体里属性的值2023-06-10 09:31:299
c语言 结构体成员变量为指针时如何赋值
按正常指针赋值就可以。2023-06-10 09:31:483
c语言赋值是什么?
c语言赋值是 int a,b; a = b,把b的值给啊2023-06-10 09:31:593
结构体内的变量能在外面直接赋值吗?
结构体变量是可以直接赋值的; 定义结构体类型,然后用这个类型定义出来的变量就是结构体变量; c语言在相同类型的变量间赋值时是直接内存复制的,即将他们的内存进行复制,这里因为同样结构体变量,属于同一种变量,所以赋值时是按照他们的内存分布来直接拷贝的。2023-06-10 09:32:142
c语言两个结构体变量互相赋值后占同一个存储单元吗
c语言两个结构体变量互相赋值后占不同存储单元。1、结构体变量是可以直接赋值的。定义结构体类型,然后用这个类型定义出来的变量就是结构体变量。2、C语言在相同类型的变量间赋值时是直接内存复制的,即将他们的内存进行复制,这里因为同样结构体变量,属于同一种变量,所以赋值时是按照他们的内存分布来直接拷贝的。2023-06-10 09:32:211
如何给结构体里的数组字符串赋值?
直接赋值呗。。game[0][0].cpart=..2023-06-10 09:32:295
FILE结构体指针与非指针变量赋值问题!
1、既然是指针变量,那么将一个变量的地址值赋值给该指针变量即可!2、至于具体讲一个地址值赋值给指针有两种方法:一种就是用取地址符&来操作内嵌变量,另一种就是通过采用malloc函数动态开辟内存并将内存地址值赋值给指针变量。3、举例说明:定义int型指针变量int * p;和int型变量int a;那么将a的地址值赋值给p:p=&a;另一种方式是动态方式:p = (int*)malloc(size(int));2023-06-10 09:32:551
C语言结构体变量值的意义是什么?
c语言两个结构体变量互相赋值后占同一个存储单元吗 c语言两个结构体变量互相赋值后占不同存储单元。1、结构体变量是可以直接赋值的。定义结构体类型,然后用这个类型定义出来的变量就是结构体变量。2、C语言在相同类型的变量间赋值时是直接内存复制的,即将他们的内存进行复制,这里因为同样结构体变量,属于同一种变量,所以赋值时是按照他们的内存分布来直接拷贝的。2023-06-10 09:33:035
- 结构体变量是可以直接赋值的; 定义结构体类型,然后用这个类型定义出来的变量就是结构体变量; C语言在相同类型的变量间赋值时是直接内存复制的,即将他们的内存进行复制,这里因为同样结构体变量,属于同一种变量,所以赋值时是按照他们的内存分布来直接拷贝的。2023-06-10 09:33:161
如何给结构体中的浮点数数组赋值
C语言只有在定义字符数组的时候才能用“=”来初始化变量,其它情况下是不能直接用“=”来为字符数组赋值的,要为字符数组赋值可以用string.h头文件中的strcpy函数来完成。例如:char a[10] = "123"; /*正确,在定义的时候初始化*/char a[10];a = "123"; /*错误,不能用“=”直接为字符数组赋值*/strcpy(a, "123"); /*正确,使用strcpy函数复制字符串*/所以要对game[0][0].cpart赋值应该用strcpy(game[0][0].cpart, "123");才对。注意要使用strcpy函数要用#include <string.h>包含string.h头文件。2023-06-10 09:33:251
C语言,结构体中的数组怎么赋值,?
如果没记错的话只能是数组初始定义的时候才可以这样赋值。只能一个一个赋值,s.a[0]=1;这样是合法的想给数组赋值的话用循环吧2023-06-10 09:33:394
为什么定义定义结构体变量后不能对变量整体赋值
结构体变量是可以直接赋值的; 定义结构体类型,然后用这个类型定义出来的变量就是结构体变量; C语言在相同类型的变量间赋值时是直接内存复制的,即将他们的内存进行复制,这里因为同样结构体变量,属于同一种变量,所以赋值时是按照他们的内存分布来直接拷贝的。2023-06-10 09:33:521
c语言结构体函数指针怎么赋值
指针就是指向内存的某个地址的一个变量。结构体指针就是这个指针变量的值必须指向存放该结构体的内存位置。当这个指针没有任何指向时,可以赋值为null值,但是改指针不可使用,程序中应该做判断。下面是一些赋值演示。struct student{int id;int score;} aaa;struct student *p = null;//结构体指针p初始化赋值为nullstruct student *p2=&aaa;//p2指向aaastruct student *p3=(struct student *)malloc(sizeof(struct student));//内存中申请一个结构体空间,并将地址强制转换为结构体指针变量赋值给p32023-06-10 09:34:011
c++怎么给一个类里的结构体中的变量赋值
要有结构体的对象或指针才行2023-06-10 09:34:103
C语言中 关于结构体对象赋值的问题
定义结构体变量a,b时并未对其初始化,此刻赋值上产生的结果是随机的。但b的地址空间是还在的,也就是把a中的内容拷贝到b的内存单元中去了,此刻a的内存数据并未改变2023-06-10 09:34:202
c语言问题:定义了一个结构体,并对其赋值
1.车站代码和车站编号是不是位置写反了?2.铁路线编号为slno[4],可是后面第五组数据,却出现了五个数字2023-06-10 09:34:423
如何将结构体定义的变量变量赋值给指针
struct triple //定义三元组类型{float x;float y;float z;};void del(struct triple *st){st->x=0;st->y=0; st->z=0 ;}void main(){triple a,b;printf("请分别对三元组a和b定义 ");scanf("%f%f%f%f%f%f",&a.x,&a.y,&a.z,&b.x,&b.y,&b.z);printf("三元组a对应的x=%f,b=%f,c=%f ",a.x,a.y,a.z); //输出原三元组aprintf("三元组b对应的x=%f,b=%f,c=%f ",b.x,b.y,b.z); //输出原三元组bdel(&a); //销毁 用&操作取变量地址就可以了del(&b);printf("三元组已经销毁! ");printf("三元组a对应的x=%f,b=%f,c=%f ",a.x,a.y,a.z); //输出销毁后的三元组aprintf("三元组b对应的x=%f,b=%f,c=%f ",b.x,b.y,b.z); //输出销毁后的三元组b}2023-06-10 09:34:481