结构体
结构体是一种特殊类型,可以打包其它类型为一种复合类型。在面向对象的概念中,就是一种特殊类。
使用结构体几种形式:
第一种
先定义结构体,然后定义结构体变量。
定义结构体:
struct point1{
int x;
int y;
};
定义结构体变量
struct point1 point;
第二种
定义匿名结构体,然后定义结构体变量
struct{
int x;
int y;
}point2;
第三种
定义结构体的同时定义结构体变量
struct point3{
int x;
int y;
}point;
第四种
用typedef定义结构体
typedef struct point4{
int x;
int y;
}t_point;
然后用t_point定义结构体变量
t_point point;
结构体数组
struct student{
int age;
char *name;
};
struct student ss[10];
结构体指针
struct student *pst;
pst = &foo;
结构体初始化
有结构体定义
struct student{
int age;
char *name;
};
第一种
struct student foo1 = {11, "xiaoming"};
struct student foo2 = {11}
第二种
struct student foo3 = {.age = 11};
第三种
struct student foo4 = (struct student){11, "xiaoming"};
struct student foo5 = (struct student){.age = 11};
结构体数组初始化
struct student ss1[10] = {0};
struct student ss2[10] = {{}, {}, {}};
struct student ss3[10] = {[2] = {}, [3] = {}};
struct student ss4[10] = {[2].age = 10, [3].name = "xiaoming"};
访问结构体成员
使用“.”返回结构体成员
struct student foo = {11, "xiaoming"};
int age = foo.age;
char *name = foo.name;
printf("age is %d, name is %s\n", age, name);
foo.age = 20;
foo.name = "liyong";
printf("age is %d, name is %s\n", foo.age, foo.name);
当使用结构体指针的时候可以用箭头操作符”->”
struct student *pst;
pst = &foo;
printf("pst age is: %d and name is %s\n", (*pst).age, (*pst).name);
printf("pst age is: %d and name is %s\n", pst->age, pst->name);
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
C 语言结构体对齐也是老生常谈的话题了。基本上是面试题的必考题。内容 虽然很基础,但一不小心就会弄错。写出一个 struct,然后 sizeof,你会不会经 常对结果感到奇怪? sizeof的结果往往都比你声明的变量总长度要...
60. 高级C语言程序员测试必过的十六道最佳题目+答案详解 297 61. C语言常见错误 320 62. 超强的指针学习笔记 325 63. 程序员之路──关于代码风格 343 64. 指针、结构体、联合体的安全规范 346 65. C指针讲解 352 66...
60. 高级C语言程序员测试必过的十六道最佳题目+答案详解 297 61. C语言常见错误 320 62. 超强的指针学习笔记 325 63. 程序员之路──关于代码风格 343 64. 指针、结构体、联合体的安全规范 346 65. C指针讲解 352 66...
60. 高级C语言程序员测试必过的十六道最佳题目+答案详解 297 61. C语言常见错误 320 62. 超强的指针学习笔记 325 63. 程序员之路──关于代码风格 343 64. 指针、结构体、联合体的安全规范 346 65. C指针讲解 352 66...
60. 高级C语言程序员测试必过的十六道最佳题目+答案详解 297 61. C语言常见错误 320 62. 超强的指针学习笔记 325 63. 程序员之路──关于代码风格 343 64. 指针、结构体、联合体的安全规范 346 65. C指针讲解 352 66...
60. 高级C语言程序员测试必过的十六道最佳题目+答案详解 297 61. C语言常见错误 320 62. 超强的指针学习笔记 325 63. 程序员之路──关于代码风格 343 64. 指针、结构体、联合体的安全规范 346 65. C指针讲解 352 66...
60. 高级C语言程序员测试必过的十六道最佳题目+答案详解 297 61. C语言常见错误 320 62. 超强的指针学习笔记 325 63. 程序员之路──关于代码风格 343 64. 指针、结构体、联合体的安全规范 346 65. C指针讲解 352 66...
C语言难点分析整理 .......................................................................................................................... 9 3. C语言难点 ..............................................
60. 高级C语言程序员测试必过的十六道最佳题目+答案详解 297 61. C语言常见错误 320 62. 超强的指针学习笔记 325 63. 程序员之路──关于代码风格 343 64. 指针、结构体、联合体的安全规范 346 65. C指针讲解 352 66...
60. 高级C语言程序员测试必过的十六道最佳题目+答案详解 297 61. C语言常见错误 320 62. 超强的指针学习笔记 325 63. 程序员之路──关于代码风格 343 64. 指针、结构体、联合体的安全规范 346 65. C指针讲解 ...
之前利用C语言完成了一个关于个人通讯录管理系统的课题,主要是关于联系人的添加、查找、删除、修改、输出以及文件的写入与读出,还有一个甜点功能—模拟通话,它的实现原理也很容易理解,文章末尾会介绍到。...
语言的讲解非常完整,使得这本书也同样适用于有经验的程序员,本书新增加了基于Allegro C函数库的游戏编程章节,也同样会吸引很多青少年程序设计人员。这是一本杰出的c程序员教程与参考书。 --Ray Seyfarth,...
在计算机科学发展过程中,早期数据结构教材大都采用PASCAL语言为描述工具,后来出现了采用C语言为描述工具的教材版本、至今又出现了采用C++语言为描述工具的多种教材版本。本教实验指导书是为已经学习过C++语言的...
从内存向磁盘输出数据必先送到输出缓冲区,装满缓冲区后才一起送到磁盘。从磁盘向内存输入数据先送到输入缓冲区,程序需要数据时去缓冲区读取,若缓冲区无数据,则程序进入阻塞状态(等待数据)。 C语言把数据看作...