`
kmplayer
  • 浏览: 508946 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

第三章 分析C语言的声明

阅读更多
1,
int( *fun() )():fun是一个函数,返回一个指针,指针指向一个int ()类型的函数.
int( *fun())[]:fun是一个函数,返回一个指针,指针指向一个元素为int类型的数组.
int( *fun[] )():fun是一个数组,数组元素是指针,指针指向一个int ()类型的函数.

2,关于联合:
(1)可以通过把两个相互排斥的字段存储于联合中来节省空间.
(2)联合可以把同一种数据解释成两种不同的东西.如:
#include<stdio.h>

union bit_32
{
    int whole;
    char byte[4];
} value;

int main()
{
    value.whole=0x11223344;
    printf("%x\n",value.whole);
    printf("%x\n",value.byte[0]);
    return 0;
}

3,关于枚举:
把一串名字与一串整数值联系在一起.
缺省情况下,整数值从零开始,如果对某个标识符进行了赋值,那么紧接其后的那个标识符的值加1.
枚举的优点:#define定义的名字会在编译时丢弃,而枚举会一直在调试器中出现.
#include<stdio.h>

enum sizes{nu, small=3,medium,large=8,humungous};

int main()
{
    printf("%d\n",nu);
    printf("%d\n",small);
    printf("%d\n",medium);
    printf("%d\n",large);
    printf("%d\n",humungous);
    return 0;
}


4,c语言声明的优先级规则:例如 char* const *(*next)()
(1)从它的名字开始: next
(2)被括号括起来的部分:(*next),next是一个指针
(3)后缀操作符:()表示一个函数,[]表示一个数组
(*next)():next是一个指针,指向一个函数.
(4)前缀操作符:*(*next)(),函数返回一个指针.
(5)char* const *(*next)():函数返回的指针指向类型为char的常量指针.

5,巧用typedef
void (*signal(int sig, void(*func)(int)))(int);
typedef void(*pro_to_func)(int);
上述可以简化为:
pro_to_func signal(int,pro_to_func);

6,typedef 和 define的区别:
(1)#define peach int
unsigned peach i;//没有问题
typedif int banana;
unsigned banana i;//错误,非法

(2)#define int_ptr int *;
int_ptr a,b; 扩展为int * a,b;
//a为int*类型,b为int类型
typedef int * int_ptr;
int_ptr a,b;
//a,b均为int*类型.

建议:不要为了方便对结构体使用typedef,这样做的好处只是省略了关键字struct.

分享到:
评论

相关推荐

    C语言程序设计-谭浩强-第五章习题答案

    在本资源中,我们关注的是谭浩强编著的《C语言程序设计》一书的第五章习题解答。这是一本经典的C语言教材,对于初学者和有一定基础的学习者来说,都具有很高的参考价值。谭浩强教授以其深入浅出的讲解方式,帮助读者...

    C语言程序设计第三章答案(清华 第五版)

    在本资源中,我们主要关注的是“C语言程序设计”的第三章内容,特别是与作业答案相关的部分。C语言是一种强大的、通用的编程语言,被广泛应用于系统开发、嵌入式系统、软件工程等多个领域。清华大学出版的第五版教材...

    C语言程序设计第三章课后习题源代码

    《C语言程序设计第三章课后习题源代码》是一个针对初学者和进阶者的重要学习资源,旨在帮助读者深入理解和实践C语言的基础知识。这一章通常会涵盖C语言的基本语法、控制结构以及函数的使用,是编程学习的基石。 在...

    c语言第三版答案

    通过以上分析,我们可以看到C语言是一种功能强大且灵活的编程语言,它提供了丰富的工具和结构,使得程序员能够高效地开发各种类型的软件应用。无论是基本的数据类型操作,还是复杂的逻辑控制和算法实现,C语言都能...

    C语言程序设计第七章习题答案参考

    C语言是计算机编程的基础,尤其对于初学者而言,掌握C语言能...仔细研读和分析这些习题和答案,将有助于巩固你在C语言第七章的学习成果,提升编程能力。同时,建议你在阅读答案后自行编写代码,通过实践来加深理解。

    C语言程序设计与应用 第一章 简单C语言设计

    在C语言程序设计中,第一章通常会介绍基本的C语言概念和简单的程序设计。下面将详细阐述这些知识点: 1. **C程序结构**:C语言程序由预处理指令、函数定义和其他代码组成。预处理指令(如`#include`)在编译前执行...

    C语言程序设计现代方法第2版全部课后习题参考答案.pdf

    第三章深入讲解了控制流程,包括条件语句(if, if-else, switch)和循环(while, for)。习题中会有涉及条件判断的复杂逻辑和多层嵌套循环的设计,旨在锻炼读者编写控制流程的能力。 第四章至第六章主要介绍函数的...

    第1章 单片机C语言开发基础_单片机C语言开发基础_

    单片机C语言开发基础是嵌入式系统开发中的重要一环,它是将高级语言转换为机器可执行代码的关键工具。...提供的"第1章 单片机C语言开发基础.docx"文档应该包含了更详细的讲解和示例,是深入学习这一主题的重要资料。

    谭浩强 C程序设计第三章课后答案

    压缩包中的"test3"可能是包含了第三章所有习题的源代码文件,这些源代码文件通常以".c"为扩展名,表示它们是用C语言编写的。通过阅读和分析这些源代码,学习者可以直观地看到如何将理论知识转化为实际的编程实践,这...

    c语言程序设计_第3版_何钦铭_课后答案.pdf

    首先,文件标题“c语言程序设计_第3版_何钦铭_课后答案.pdf”表明此文档是C语言教科书《C语言程序设计》第三版的课后习题答案集,何钦铭编写。这个文档对于学习C语言的学生来说,是完成作业和检测学习效果的重要参考...

    第1章C语言概述

    ### 第1章 C语言概述 #### 1. C语言的历史背景 C语言作为一种国际上广泛流行的高级编程语言,它的起源和发展历程非常值得我们去了解。 - **B语言**:1970年由美国贝尔实验室设计,它最初是为了编写第一个UNIX操作...

    c程序设计第三版第五章答案

    在"C程序设计第三版第五章答案"这个主题中,我们可以深入探讨C语言编程的一些关键知识点。第五章通常涉及C语言的基础概念和语法,这包括变量、数据类型、运算符、控制结构以及函数的使用。以下是对这些核心概念的...

    51单片机 第4章80C51单片机C语言程序设计

    **51单片机 第4章 80C51单片机C语言程序设计** 在计算机硬件领域,51单片机是一个广泛使用的微控制器系列,尤其在嵌入式系统设计中占据重要地位。本章节主要围绕80C51这款经典的51单片机,探讨其C语言程序设计的...

    C语言第五版课件PPT

    3. **第3章_数据类型(新)** - 这章深入探讨C语言的数据类型,包括结构体、联合体、枚举和指针的预览,这些都是C语言的特色。 - 学习者会学习到如何声明和使用复合数据类型,以及如何通过指针操作内存。 4. **第4...

    C语言程序设计第七章课后习题加例题源代码

    在C语言程序设计的学习过程中,第七章通常会深入讲解指针这一核心概念。指针是C语言中的强大工具,它允许我们直接操作内存地址,从而实现高效的数据操作和灵活的编程结构。本资源包含了该章节的课后习题及例题的源...

    C语言程序设计 第三版

    ##### 三、C语言的基础语法(第3章) - **常量与变量**(3.1) - 区分常量与变量的概念。 - **标识符**(3.2) - **合法标识符的规则**(3.2.1) - 规定合法标识符的命名规则。 - **标识符的作用**(3.2.2) -...

    清华大学C语言PPT

    3. **第三章_基本数据类型和变量**:涵盖C语言中的基础数据类型,如整型、浮点型、字符型,以及变量的声明、初始化和使用。 4. **第四章_运算符和表达式**:包括算术运算符、比较运算符、逻辑运算符、赋值运算符等...

    c语言学习-c语言第章.pptx

    《C语言学习——C语言第章》 C语言是一种强大的编程语言,被广泛应用于软件开发。本章主要探讨了结构化程序设计方法,这是一种在PASCAL和C等结构化编程语言出现后逐渐形成的编程思想。结构化程序设计强调3个核心...

    谭浩强(第三版)c语言答案

    这里提供的“谭浩强(第三版)C语言答案”包含了该书第一到第九章的部分习题解答,对于正在学习C语言的人来说,是极好的自我检验和提升工具。 C语言是一种强大的、结构化的编程语言,被广泛应用于系统开发、软件工程...

Global site tag (gtag.js) - Google Analytics