C和指针 (pointers on C)——第十章:结构体和联合(下)习题

//1、这一章的习题纯粹为了刷存在感。。。
typedef struct phone
{
	char * quhao;
	char * jiaohuantai;
	char * zhanhaoma;
};

typedef struct call
{
	char * date;
	char * time;
	phone * shiyong;
	phone * self;
	phone * hujiao;
};
2、
typedef struct cash
{
	float retail_price;
	float actual_price;
	float sales_tax;
	float licensing_fee;
};
typedef struct daikuan
{
	float retail_price;
	float actual_price;
	float sales_tax;
	float licensing_fee;
	float doun_payment;
	float loan_duration;
	float interst_rate;
	float monthly_payment;
	float name_of_bank;
};
typedef struct zulin
{
	float retail_price;
	float actual_price;
	float down_payment;
	float security_deposit;
	float monthly_payment;
	int lease_term;
};

typedef struct sale
{
	char name[20];
	char address[40];
	char model[20];
	union
	{
		cash trade;
		daikuan trade;
		zulin trade;
	};

};

时间: 2024-10-05 05:50:02

C和指针 (pointers on C)——第十章:结构体和联合(下)习题的相关文章

C和指针 (pointers on C)——第十章:结构体和联合(上)

第十章 结构和联合 这个部分先介绍了.运算符,可以供直接访问,还介绍了->运算符,它代替结构体指针的间接访问操作(*struct).xxx 这一章新手理解起来不算太难,没有学过操作系统的话理解位段.对齐等概念会有一些问题. 越发的说明了指针和内存绝对是C的核心. 总结: 结构声明列出了结构包含的成员列表,不同类型的值可以存储在一起. 不同的结构声明即使他们的成员列表相同也被认为是不同的类型. 声明结构时使用typedef创建一种新类型是一个好方法. typedef struct { int a;

12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个!

1.gets()函数 问:请找出下面代码里的问题: #include<stdio.h> int main(void) { char buff[10]; memset(buff,0,sizeof(buff)); gets(buff); printf("\n The buffer entered is [%s]\n",buff); return 0; } 答:上面代码里的问题在于函数gets()的使用,这个函数从stdin接收一个字符串而不检查它所复制的缓存的容积,这可能会导致

结构体指针

结构体与指针 1.结构体指针的数值为某个结构体的内存空间的地址,从而指针指向某个结构体. 2.结构体指针的初始值为空(0),不指向任何结构体. 3.malloc操作:创建一个新的内存空间(从内存中选择一个内存空间存储结构体),p指向这个结构体,p的值为这个结构体的内存空间的地址. 4.结构体指针的赋值:一个结构体指针的数值等于另外一个结构体指针的数值,从而两个结构体指针指向相同的结构体.当对某个结构体进行访问时,选择的结构体指针只要满足该结构体指针指向这个结构体即可,即可以有很多种选择. 5.当

黑马程序员 C语言-枚举,结构体,指针

一.枚举 ※枚举变量的定义 前面只是定义了枚举类型,接下来就可以利用定义好的枚举类型定义变量. 跟结构体一样,有3种方式定义枚举变量 1.先定义枚举类型,再定义枚举变量 enum Season {spring, summer, autumn, winter}; enum Season s; 2.定义枚举类型的同时定义枚举变量 enum Season {spring, summer, autumn, winter} s; 3.省略枚举名称,直接定义枚举变量 enum {spring, summer

入职培训笔记记录--day9(1、指针函数与函数指针、函数指针数组 2、malloc memset 3、递归函数 4、结构体 5、共用体---》大小端 6、枚举)

1.指针函数与函数指针.函数指针数组 指针函数:返回值为指针的函数 char *fun() { char str[] = "hello world"; return str; } int main() { char *p = fun(); puts(p); return 0; } 编译时,会出现警告,返回了一个已经被释放掉的内存空间的首地址解决方法:1.static 2.char *str = "hello world"; 3.malloc 注意:使用完后要free

c++指向结构体变量指针

转自http://www.jb51.net/article/42140.htm 定义: 结构体变量的指针就是该变来那个所占据的内存段的起始地址.可以设一个指针变量,来指向一个结构体变量,此时该指针变量的值是结构体变量的起始地址. 设p是指向结构体变量的数组,则可以通过以下的方式,调用指向的那个结构体中的成员: (1)结构体变量.成员名.如,stu.num. (2)(*p).成员名.如,(*p).num. (3)p->成员名.如,p->num. 代码如下: #include<iostrea

C语言开发函数库时利用不透明指针对外隐藏结构体细节

1 模块化设计要求库接口隐藏实现细节 作为一个函数库来说,尽力减少和其调用方的耦合,是最基本的设计标准.C语言,作为经典"程序=数据结构+算法"的践行者,在实现函数库的时候,必然存在大量的结构体定义,接口函数需要对这些结构体进行操作.同时,程序设计的模块化要求库接口尽量少的暴露其实现细节,接口参数尽量使用基本数据类型,尽量避免在形参中暴露库内结构体的定义. 2 隐藏结构体的两种方法 以笔者粗浅的认识,有两种最常用的方法,可以实现库内结构体定义的隐藏:接口函数形参使用结构体指针,接口函数

EDKII CR宏:根据成员指针获取父结构体变量指针

核心提示: 1. CR宏 (Containing Record):根据成员指针获取父结构体变量指针 2. 0 指针的妙用. 在EDKII 的代码中有不少关于CR宏的使用,如 时钟中断处理函数CoreTimerTick. VOID EFIAPI CoreTimerTick ( IN UINT64 Duration ) { IEVENT *Event; ... if (!IsListEmpty (&mEfiTimerList)) { Event = CR (mEfiTimerList.Forward

结构体指针概要

结构体指针 指针当做函数参数 数组当做函数参数 1.结构体指针 指向结构体变量的指针.称为结构体指针 Student stu ={0}; Student *p = &stu; Student  * 结构体指针类型(类型), p结构体指针变量(变量名); &stu 结构体变量地址(初值) (*p).sex = 'm'; p->sex= 'm'; (*p)对指针取值后是结构体变量,.sex是访问成员变量 使用指针可以指向操作符直接访问结构体成员p->sex 1.结构体指针 结构体指