当前位置:首页 » 编程语言 » c语言初始化结构体

c语言初始化结构体

发布时间: 2022-11-17 07:14:30

1. c语言memset初始化结构体问题

1.memset函数的原型void *memset(void *s, char ch,size_tn);

函数的第一个形式参数是指针类型,所以实参因为一个地址,即&a

注意&a与a是不同的.a是结构体变量名,而&a是变量a的地址.

2.另外memset()是一个库函数函数,需要加头文件#include<string.h>

3.正如你所说的全局与主函数内定义变量a是有一点区别

源代码如下:

#include<stdio.h>
#include<string.h>

typedef struct ss
{
int num;
int dir[5][3];
}tent;

//tent a;

int main()
{
tent a;
printf("a=%p ",a); //输出的是变量的地址

printf("&a=%p ",&a);//注意a与&a的区别
memset(&a,0,sizeof(a));
return 0;
}

  1. 主函数内运行结果:

这个没警告的.

已上在VC6.0下的结果

为嘛第二个没警告,暂时不清楚.但第一个有警告是合理的.

2. C语言结构体数组初始化```从键盘输入

/*
先这样改,看看,int型7/4=1的,结果当然不如你所料了。
按照奶茶的把%d的改过来了。那个float和double的也有道理,但用不着改了。还有,你的输入写的不是很好,最好一项一项的输入,我就不改了。
*/
#include<stdio.h>
struct STUDENT{
char name[20];
int age;
char sex;
int weight;
};

float aver(struct STUDENT *q,int n);

main()
{
struct STUDENT a[4];
struct STUDENT *p;
int i;
float ave;
p=a;
printf("请输入四个学生的数据:\n");
for(i=0; i<4; i++)
{
p=a;
printf("请输入第%d个学生的姓名:\n",i+1);
gets((p+i)->name);
printf("请输入第%d个学生的年龄,性别和体重:\n",i+1);
scanf("%d%c%d",&((p+i)->age),&((p+i)->sex),&((p+i)->weight));

}
ave=aver(p,4);
printf("四个学生的平均年龄是:%f",ave);
}

float aver(struct STUDENT *q,int n)
{
int i,sum;
float ping;

sum=0;
for(i=0; i<n; i++,q++)
{
sum+=q->age;
}
ping= (float)sum/n;
return(ping);
}

3. c语言如何对结构体某一成员初始化

结构体与类一样可以定义一个构造函数。
如下:
struct s{
s(){
a=0;
}
int a;
};
每次声明一个结构体变量时都会调用结构体的构造函数,在构造函数里面添加初始化语句就可以了

4. 如何对结构体变量进行初始化

结构体初始化可以再定义时制定初始值,如:

struct
student

{

int num;

char name[20];

} student1 =
{10001,"zhangxin"};

也可以采取申明类型与定义变量分开的形式,在定义变量时进行初始化:

student student1 =
{10001,"zhangxin"} 。

在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data
type)的一类。

结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问

5. c语言结构体初始化(编译系统vs2010)

.location 这种叫按名称初始化,是gun对c的扩展,只有gnu支持,就是linux下的编译器支持(gcc, g++)
程序员写代码的时候,最好使用被广泛支持的标准,尽量不要使用个别编译器的私有定义。

关注优酷上的 ”C学习指南“,在第10章里会讲这个问题。

6. 关于C语言结构体构造函数初始化的问题

#include<iostream>
#include<string>
using std::cout;
using std::string;
class A{
string a;
public:
A(string ab="1wggg"){a=ab;}
string geta(){return a;}
};
void main()
{
A b;
cout<<b.geta();
}

7. C语言结构体里的结构体怎么初始化

中间又有结构体嵌套,你的格式应该是{{
..{}..},{..{}..},...}
其实一般不这么初始化,定义全局静态变量或者指针,指针的话通过malloc分配内存,然后通过->访问结构体成员,静态变量的通过.访问成员,然后赋值。

8. C语言结构体里的结构体怎么初始化

方法是在定义变量的同时给其一初始值。结构体变量的初始化,遵循相同的规律。
简单变量的初始化形式如下:
数据类型 变量名=初始化值;
例如,定义整型变量a,并给其初始化值10的语句如下
int a=10;
数组的初始化,需要通过一常量数据列表,对其数组元素分别进行初始化,形式如下:
数据类型 数组名称〔数组长度〕={初始化值1,初始化值2,…, 初始化值n};
例如,定义长度为5的整型数组,并对其初始化的语句如下:
int A[5]={20,21,0,3,4};
结构体变量的初始化方式与数组类似,分别给结构体的成员变量以初始值,而结构体成员变量的初始化遵循简单变量或数组的初始化方法。具体的形式如下:
struct 结构体标识符
{
成员变量列表;

};
struct结构体标识符 变量名={初始化值1,初始化值2,…, 初始化值n };
例如,定义struct Point类型变量,并初始化的语句如下:
struct Point oP1={0.0,0.2,0.3};
struct Point类型变量oP1的三个成员变量的值分别为
oP1.x=0.0,
oP1.y=0.2
oP1.z=0.3
由于定义结构体变量有三种方法,因此初始化结构体变量的方法对应有三种,上面已经介绍了其中的一种形式,其他两种形式如下:
struct Point
{
double x;
double y;
double z;
} oP1={0.0,0.2,0.3}; struct
{
double x;
double y;
double z;
} oP1={0.0,0.2,0.3};
在初始化结构体变量时候,既可以初始化其全部成员变量,也可以仅仅对其中部分的成员变量进行初始化。例如:
struct Student
{
long id;
char name[20];
char sex;
}a= {0};
其相当于a.id=0;a.name=“”;a.sex=‘\0x0’。
仅仅对其中部分的成员变量进行初始化,要求初始化的数据至少有一个,其他没有初始化的成员变量由系统完成初始化,为其提供缺省的初始化值。

9. c语言怎么结构数据初始化

C语言
结构体类型
变量初始化分为
普通变量

数组变量
两种形式,说明如下:
typedef struct
{
int x,y;
}
direction
;
direction dir={1,2} ; //普通变量,用一组{}括起来,成员变量数据间以逗号分隔,按变量定义顺序对应数值。未赋值成员,默认填0
direction move[8]={ //数组变量,整体用一组{}括起来,每一个元素按普通变量格式进行书写,各元素间用逗号分隔。未赋值元素,默认填0
{0,0},{0,1},{1,0},{1,1},
{2,0},{2,1},{3,0},{3,1}
};

10. c语言结构体初始化

你已经定义了一个mem1,下一句又定义了一个mem1,所以它会提示你多次定义了,应该把第二个struct Mem去掉吧

热点内容
oicq服务器地址 发布:2025-01-13 17:34:19 浏览:928
默认管理密码是什么 发布:2025-01-13 17:33:33 浏览:443
系列影视广告文案脚本 发布:2025-01-13 17:31:57 浏览:792
防盗器编程 发布:2025-01-13 17:24:39 浏览:899
联通电信服务器怎么不卡顿 发布:2025-01-13 17:21:30 浏览:821
科沃兹低配可以升级哪些配置 发布:2025-01-13 17:09:26 浏览:330
android判断数据库是否存在 发布:2025-01-13 17:08:17 浏览:334
ie脚本运行错误 发布:2025-01-13 17:08:05 浏览:623
python中或者怎么表示 发布:2025-01-13 16:32:33 浏览:291
易达加密锁 发布:2025-01-13 16:27:23 浏览:516