读书共享 Primer Plus C-part 12

第十四章 结构和其他数据形式

1.关于上struct与union 的区别

 1 #include<stdio.h>
 2
 3 typedef union Book_u
 4 {
 5   int pags;
 6   int money;
 7   int num;
 8 }Book;
 9
10 int main()
11 {
12    Book book = {.pags=101,.money=11,.num=1};
13
14    printf("%d   %d\n",book.pags,book.num);
15    book.pags=100;
16    printf("%d   %d\n",book.pags,book.money);
17    book.money=10;
18    printf("%d   %d\n",book.pags,book.money);
19
20 }

输出结果 如下:

linux:/home/lcw/code # ./a.out
1 1
1
100 100
10 10

原因是:union 同一时间只能保存一个类型的变量。

时间: 2024-11-05 18:41:15

读书共享 Primer Plus C-part 12的相关文章

读书共享 Primer Plus C-part 7

第十章  数组和指针 1.关于二维数组跟指针 #include<stdio.h> int main() { int arrs [3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; int i = 0; for(i=0;i< 10 ;i++) { printf("%d \n",**arrs+i); } } 上述代码:可以说明二维数组的指针的排序以及使用 按行打 #include<stdio.h> int main() { in

读书共享 Primer Plus C-part 9

第十二章 存储类.链接和内存管理                                                       针对代码块中的static变量做如下范本 1 #include<stdio.h> 2 3 void test_static() 4 { 5 int dy = 1; 6 static int static_int =1; 7 printf("%d %d \n",dy++,static_int++); 8 9 } 10 11 12 int

读书共享 Primer Plus C-part11

第十四章结构和其他数据形式 关于fread以及fwrite fread(char* buff,int size,int count,FILE* fp) fwrite(char* buff,int size,int count,FILE* fp) #include<stdio.h> #include<string.h> typedef struct book_s { int count; char name[100]; char author[100]; float price; }

读书共享 Primer Plus C-part 8

  第十一章 字符串和字符串函数 关于strcpy和strncpy 简单说含n的相对于不含会检测数据段的大小使得数据段可控.--也可以简单的认为带n的相比较不带的更加安全可靠 snprintf() 与printf功能相差不大,最大的区别在于printf是将字符串打印到屏幕 char str[100]; char name[]="liuchuanwu"; int i = 100; snprintf(str,"%d , -- %s--."i,name);

《C++primer》v5 第12章 动态内存 读书笔记 习题答案

这一章暂时没写完,先留着以后再写. 在C++程序中,程序员可以给手动开辟内存,但是这块内存需要手动释放,不便管理,因此新标准提供智能指针类型来管理动态对象.它负责自动释放所指向的对象. shared_prt允许多个指针指向同一个对象 unique_ptr独占所指向的对象 weak_ptr是一个弱引用,指向shared_ptr所管理的对象 一些操作: p=q;//递减p的引用计数,递增q的引用计数 shared_ptr<T> p(q);//p是q的拷贝,递增q的引用计数 通过make_share

把《c++ primer》读薄(1-2)

督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. 一:大小端的概念Big-Endian和Little-Endian(见计算机存储的大小端模式解析) 二:浮点数的机器级表示(见从如何判断浮点数是否等于0说起——浮点数的机器级表示) 三:c++的基本的内置类型: 1)算术类型,又包括: 整型(包括:整数int.short.long int类型,单个字符(分为存储单个机器字节的char类型,1个字节,char有三种不同的类型,普通char,unsigned char和signed

C++ Primer学习总结 第12章 动态内存

第12章 动态内存 1.    申请并使用shared_ptr.  P400 2.    shared_ptr计数. P402 赋值, 拷贝, 向函数传递一个智能指针, 或函数返回一个智能指针都会增加当前智能指针的计数. 3.    不同对象间利用智能指针共享数据的例子. 4.    使用new来动态申请内存. P407 默认情况下,new申请的内存对象都是默认初始化的. 5.    new申请的const对象必须初始化. P408 如果申请内置类型, 那么必须用括号()初始化. 如果申请类类型

读书笔记—CLR via C#章节1-2

这本书这几年零零散散读过两三遍了,作为经典书籍,应该重复读反复读,既然我现在开始写博了,我也准备把以前觉得经典的好书重读细读一遍,并且将笔记整理到博客中,好记性不如烂笔头,同时也在写的过程中也可以加深自己理解的深度,当然同时也和技术社区的朋友们共享. 程序集 描述:一个或多个类型定义文件及资源文件的集合 特征:可重用.可保护.可版本控制的单元 生成:可通过C#编译器(或其他编译器)或AL.exe生成 组成: 托管模块(module) PE头,PE32或PE32+,面向CPU架构的信息 CLR头,

C++ Primer学习总结 第1-2章 变量和基本类型

第1-2章 变量和基本类型 1.下面这个语句在C++98和C++11中的输出结果不同. C++98结果: (如果想要更高的精度,可以用%.9lf,输出9位有效数字) C++11结果: 结论: printf的%lf在C++11中表示longdouble,所以用中%f就可以输出float和double类型.而printf在C++98中可以用%lf正确输出double. 如果是scanf的话,不论C++98还是C++11中float都用%f读取,double都用%lf读取,因为二者结构不同.   2.