当前位置:首页 » 编程语言 » c语言结构体的私有变量
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言结构体的私有变量

发布时间: 2022-04-12 12:38:21

A. c语言结构体变量

看一个例子吧
typedef
struct
_my_date
{
int
y;
int
m;
int
d;
}my_date,MY_DATE,*PMY_DATE;
定义变量合法的有
struct
_my_date
var;
/*定义一个结构体变量
var*/
struct
_my_date
*
var;
/*定义一个结构体变量指针
var*/
my_date
var;
/*定义一个结构体变量
var*/
my_date
*
var;
/*定义一个结构体变量指针
var*/
MY_DATE
var;
/*定义一个结构体变量
var*/
MY_DATE
*
var;
/*定义一个结构体变量指针
var*/
PMY_DATE
var;
/*定义一个结构体变量指针
var*/
分析答案:
A)可用S定义结构体变量
错,应该用
struct
S
var;
/*var是变量*/
B)可以用T定义结构体变量
错,可以用T定义结构体变量指针
C)可以用T定义指向结构体变量的指针

D)T是struct
S类型的变量
错,T是结构体指针类型
相当于
T
<=>
struct
S
*

B. C语言中定义结构体及其变量

1.结构体类型数据的定义方法和引用方法
定义结构体:struct 结构体名
{
成员列表
};
定义结构体类型的变量:有三种形式
① 定义类型时定义变量:struct 结构体类型名
{
成员列表
}变量名列表;
② 直接定义结构类型变量:struct
{
成员列表
}变量名列表;
③ 由已定义的结构体类型来定义变量:struct 结构体类型名变量名列表;
引用结构体类型变量:在定义了结构体类型变量后,采用下列方法引用结构体类型的
变量:
结构体变量名.成员名
这里"."是成员(分量)运算符,它在所有的运算符中优先级最高。
使用结构体时注意:
(1)结构体类型和结构体类型变量是不同的概念,定义结构体类型变量时应先定义
结构体类型,然后再定义变量属于该类型。
(2)定义了—个结构体类型后,系统并没有为所定义的各成员项分配相应的存储
间。只有定义了一个结构体类型变量,系统才为所定义的变量分配相应的存储空间。结构
体类型变量占用内存的字节数是所有成员占用内存长度之和。
(3)结构体成员的引用。如果一个结构体中又嵌套一个结构体,则要访问一个成员
时,应采取外层向内层逐级访问的方法。
求采纳为满意回答。

C. c语言如何定义结构体变量

首先,定义一个结构的一般形式为:

struct结构名
{
//成员表列
};

成员表由若干个成员组成,每个成员都是该结构的一个组成部分。对每个成员也必须作类型说明,其形式为:“类型说明符成员名;”。成员名的命名应符合标识符的书写规定。例如:

structstu
{
intnum;
charname[20];
charsex;
floatscore;
};

在这个结构定义中,结构名为stu,该结构由4个成员组成。第一个成员为num,整型变量;第二个成员为name,字符型数组;第三个成员为sex,字符型变量;第四个成员为score,浮点型变量。应注意在括号后的分号是必不可少的。


然后,当结构定义完成后,即创建了一种数据类型,可以像int、float等内置类型一样使用,以上面定义的stu结构体来和int类型对比着看。

inta;//定义一个int类型的变量a

stua;//定义一个stu类型的变量a

int*p;//定义一个int类型的指针p

stu*p;//定义一个stu类型的指针p

inta[10];//定义一个int类型的数组a,它有10个元素,每个元素是int类型

stua[10];//定义一个stu类型的数组a,它有10个元素,每个元素是stu类型。

D. C语言中定义结构体类型变量的方法

1.结构体类型数据的定义方法和引用方法
定义结构体:struct
结构体名
{
成员列表
};
定义结构体类型的变量:有三种形式

定义类型时定义变量:struct
结构体类型名
{
成员列表
}变量名列表;

直接定义结构类型变量:struct
{
成员列表
}变量名列表;

由已定义的结构体类型来定义变量:struct
结构体类型名变量名列表;
引用结构体类型变量:在定义了结构体类型变量后,采用下列方法引用结构体类型的
变量:
结构体变量名.成员名
这里"."是成员(分量)运算符,它在所有的运算符中优先级最高。
使用结构体时注意:
(1)结构体类型和结构体类型变量是不同的概念,定义结构体类型变量时应先定义
结构体类型,然后再定义变量属于该类型。
(2)定义了—个结构体类型后,系统并没有为所定义的各成员项分配相应的存储空
间。只有定义了一个结构体类型变量,系统才为所定义的变量分配相应的存储空间。结构
体类型变量占用内存的字节数是所有成员占用内存长度之和。
(3)结构体成员的引用。如果一个结构体中又嵌套一个结构体,则要访问一个成员
时,应采取外层向内层逐级访问的方法。
求采纳为满意回答。

E. C语言问题结构体变量

程序首先定义了一个名为 struct S 的结构体类型,包含一个整形变量n,一个整形数组,整形变量可用来标记数组的长度。
然后定义了一个名为 f 的函数,该函数定义了一个指针p作为形参,指针类型为struct S,函数完成的功能是排序。
主函数部分先定义了一个struct S类型的变量,名为 s,并初始化。然后调用函数 f,将变量 s的地址传给指针p,则 p 指向结构体变量 s,在函数 f 中,第一曾循环,p->n-1 应理解为(p->n)-1,因为p指向变量s,因此p->n即是取结构体变量s中的变量 n,从主程序中可见n被初始化为10,所以p->n-1值为9,第二层循环是依次取结构体变量s中数组a的两个相邻成员,比较两者大小并交换,最终完成从小到大排序的功能。主函数中的for循环是将s中的数组a输出(已被函数f排序过了)

F. 关于C语言结构体变量

b=a和p=stud的写法是错误表达,因为a和b都是常量,它的值是不可以改变的,stud是一个结构体变量,可以这样写p=&stud(其中p代表一个指向结构体的指针变量),代表将结构体变量stud的首地址赋给p;stud就是一个变量,但是不可以直接引用,只能引用结构体里面的变量比如:
struct student
{
int num;
char name[20];
int age;
}stu;
只能这样引用:stu.num或者stu->num.

G. c语言结构体类型和结构体变量分别是什么

结构体(structure)是一个或多个相同数据类型或不同数据类型的变量集合在一个名称下的用户自定义数据类型。
struct
结构体名
{
成员列表;
};

H. C语言中,结构体里变量的定义

要知道这个问题很重的一个问题就是,指针的作用是什么,知道这个了你就知道为什么要定义指针了。
很简单的道理,如果你需要的是一个独立(或者说是一个孤立的值)的时候,你就不需要定义成指针。而当你的结构中包含了一系列的有序的数据或者是一系列数据对的时候就将其定义成一个指针。
原因在于,定义成一个指针的话方便你往下读取后面的数据,通过指针偏移就可以实现,或者你的数据分成了指针部分和数据部分的时候也需要定义成一个指针,对于这个 你学过数据结构的话就很好理解了。
祝你学习进步!

I. C语言中的私有整型数据成员是什么意思

C语言里面没有私有成员变量的概念,
这是C++才有的概念。
但可以通过下面的方法模拟实现结构体的成员变量私有化:
将结构体的定义放入源码件中实现,头文件只放声明。
比如有如下结构体(obj.h文件中定义):
struct Obj {
int id;
char *name;
};typedef struct Obj Obj;
并定义如下变量:
Obj *o;
正常情况下,可以通过如下代码正常访问结构体中的变量:
printf("id : %d\n",o->id);
如果将结构体的定义放入源文件中,上述代码将会报如下错误:
error: dereferencing pointer to incomplete type printf("id : %d\n",o->id);

如需外部访问,可通过添加相关接口实现,比如:
int get_obj_id(const Obj* o){

int ret = 0;

if(o) {
ret = o.id;

}

return ret;
}
请采纳,谢谢。

J. C语言结构体变量问题

您好,很高兴回答您的问题。
在c语言中,有一种特殊的类型,就是结构体类型,这是构造类型的一种,也就是由若干个基本类型组合构成的特殊类型。
结构体类型与其他的基本类型一样,要先定义再使用。那么定义分成两部分,一个是定义结构,也就是包含哪些内容;另一个就是定义类型,表示用来具有这个类型的变量。
您的程序中,STU就是定义结构,t就是具有这种类型的数组,n就是具有这种类型的变量。两者是不同的概念,需要区别开来。