[C语言中extern的用法]extern可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。 另外,extern也可用来进行链接指定。 extern 变...+阅读
先申明结构体,也就是定义结构体具体形式,而后可以把它当做普通数据类型来修饰变量,也可以在定义类型时后面直接跟着定义几个变量
通过变量名和点操作符来访问结构体中各个成员,如果是指针,则用->;符号来访问结构体中的成员 例如:
strcut mydata{int i; char c; char *p; char arr[10];strcut mydata *selfp;} haha;
这就定义了一个结构体,名称为mydata有几个不同在型的数据成员,而后面直接定义了一个这种结构体类型的变量实例 haha
可以给它们赋值 haha.i = 100; haha.c='\n';haha.p = "这是个串"; strcpy(haha.arr,haha.p);
haha.selftp=&haha;
另定义一个指针: mydata *p;
p=&haha;
p->arr[9] = 0;
想怎么用就怎么用,基本的和非基本的数据类型都可以整到里面,用得怎么样,就看你发挥了,最灵活的一个类型,相当于是充许你自定义数据的组合
c语言中struct的用法!谁知道!讲讲!谢谢!
结构类型定义和结构变量说明
在实际问题中,一组数据往往具有不同的数据类型。例如, 在学生登记表中,姓名应为字符型;学号可为整型或字符型; 年龄应为整型;性别应为字符型;成绩可为整型或实型。 显然不能用一个数组来存放这一组数据。 因为数组中各元素的类型和长度都必须一致,以便于编译系统处理。为了解决这个问题,C语言中给出了另一种构造数据类型——“结构”。 它相当于其它高级语言中的记录。
“结构”是一种构造类型,它是由若干“成员”组成的。 每一个成员可以是一个基本数据类型或者又是一个构造类型。 结构既是一种“构造”而成的数据类型, 那么在说明和使用之前必须先定义它,也就是构造它。如同在说明和调用函数之前要先定义函数一样。
一、结构的定义
定义一个结构的一般形式为:
struct 结构名
{
成员表列
};
成员表由若干个成员组成, 每个成员都是该结构的一个组成部分。对每个成员也必须作类型说明,其形式为:
类型说明符 成员名;
成员名的命名应符合标识符的书写规定。例如:
struct stu
{
int num;
char name[20];
char sex;
float score;
};
C语言结构体Struct怎么使用
在C语言中,可以使用结构体(Struct)来存放一组不同类型的数据。结构体的定义形式为:struct 结构体名{结构体所包含的变量或数组};结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员(Member)。结构体定义:第一种:只有结构体定义struct stuff{char job[20];int age;float height;};第二种:附加该结构体类型的“结构体变量”的初始化的结构体定义//直接带变量名Huqinweistruct stuff{char job[20];int age;float height;}Huqinwei;也许初期看不习惯容易困惑,其实这就相当于:struct stuff{char job[20];int age;float height;};struct stuff Huqinwei;第三种:如果该结构体只用一个变量Huqinwei,而不再需要用struct stuff yourname;去定义第二个变量。
那么,附加变量初始化的结构体定义还可进一步简化出第三种:struct{char job[20];int age;float height;}Huqinwei;把结构体名称去掉,这样更简洁,不过也不能定义其他同结构体变量了——至少我现在没掌握这种方法。结构体变量及其内部成员变量的定义及访问。要分清结构体变量和结构体内部成员变量的概念。就像刚才的第二种提到的,结构体变量的声明可以用:struct stuff yourname;其成员变量的定义可以随声明进行: struct stuff Huqinwei = {"manager",30,185};也可以考虑结构体之间的赋值:struct stuff faker = Huqinwei;//或 struct stuff faker2;// faker2 = faker;打印,可见结构体的每一个成员变量一模一样如果不使用上边两种方法,那么成员数组的操作会稍微麻烦(用for循环可能好点)Huqinwei.job[0] = 'M';Huqinwei.job[1] = 'a';Huqinwei.age = 27;Huqinwei.height = 185;结构体成员变量的访问除了可以借助符号".",还可以用"->"访问。
扩展资料:结构体数组与结构体指针:一个结构体变量中可以存放一组数据;如一个学生的学号、姓名、成绩等数据。如果有10个学生的数据需要参加运算显然应该用数组,这就是结构体数组结构体数组与以前介绍过的数值型数组不同之处:每个数组元素都是一个结构体类型的数据,它们都分别包括各个成员(分量)项。结构体指针和其他类型的指针都是一样的理解,在32位平台不管啥类型的指针都占4个字节的空间。结构体指针就是指向结构体变量的指针;如果一个指针变量中保存了结构体变量的首地址,那么这个指针变量就指向该结构体变量.通过结构体指针即可访问该结构体变量,这与数组指针和函数指针的情况是相同的结构指针变量说明的一般形式为:struct 结构体名 *结构体指针变量名struct student *p = &Boy; //假设事先定义了 struct student Boy。
参考资料来源:百科-struct
以下为关联文档:
C语言中函数指针用法在C语言中,指针被广泛使用,而函数指针是最为高级的用法之一,也是容易疑惑的地方之一。 看下面这段代码: #include <stdio.h> void F(int a, int* output) { printf("a = %d\n", a)...
c语言中sizeof的用法应该是编译器的内存对齐问题……cNN偏移了吧……下面列出常用类型的对齐方式(vc6.0,32位系统)。类型对齐方式(变量存放的起始地址相对于结构的起始地址的偏移量)Char偏移量必须...
C语言结构体中struct和typedef struct有什么区别C语言结构体中struct和typedef struct区别为:声明不同、访问不同、重新定义不同。 一、声明不同 1、struct:struct可以直接使用结构体名字声明结构体。 2、typedef struct:ty...
关于C语言中的typedef和struct的用法问题typedef int INT; /*尾部要有“;”*/ INT a;相当于int a; typede int* INT_P; INT_P p = &a; 相当于int *p = &a; 注意 #define INT_P int* (INT_P a, b; 相当于int *a; int b;)...
c语言中不明白的几点 typedef struct node1.typedef struct _node { datatype data; struct node *next; }node,*linklist; 这样就是说 node 等价于 stuct _node ,当我们定义一个stuct node的变量时,就可以直接用 node...
C语言中rand的用法rand 语法: #include <stdlib.h> int rand( void ); 功能: 函数返回一个在零到RAND_MAX 之间的伪随机整数。例如: srand( time(NULL) ); for( i = 0; i < 10; i++ ) printf( "Ra...
C语言中new的用法new的用法 1. 开辟单变量地址空间 使用new运算符时必须已知数据类型,new运算符会向系统堆区申请足够的存储空间,如果申请成功,就返回该内存块的首地址,如果申请不成功,则返回零值...
C语言中return用法return是个好东西 第一个作用,也就是他的真实作用 返回值,这个返回值是和函数的类型有关的,函数的类型是什么,他的返回值就是什么 比方主函数int main() {}这里就必须有一个retur...
c语言中struct的用法!谁知道!讲讲!谢谢!c语言中struct的用法!谁知道!讲讲!谢谢!请教C语言中struct的用法:结构类型定义和结构变量说明 在实际问题中,一组数据往往具有不同的数据类型。例如, 在学生登记表中,姓名应为字符型...