`
jubincn
  • 浏览: 242702 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
文章分类
社区版块
存档分类
最新评论

C语言中声明的优先级规则

 
阅读更多


A 声明从它的名字开始读取,然后按照优先级规则顺序读取

B 优先级从高到低依次是:

B. 1 声明中被括号括起来的部分

B. 2 后缀操作符:

括号()表示这是一个函数,而

方括号[]表示这是一个数组

B. 3 前缀操作符:星号*表示 “指向...的指针”

C 如果const和(或)volatile关键字的后面紧跟类型说明符(如int, long等),那么它作用于类型说明符。其它情况下,const和(或)volatile关键字作用于它紧邻的指针星号。


用上面的规则分析这个C语言声明:


A 首先从左到右找到第一个非关键字:next

B1 (*next)表示:next是一个指向...类型的指针

B2 (*next)()表示:next是一个的函数指针,函数的返回类型为...

B3 处理前缀的"*",得出函数的返回类型为指针。

C 最后,把char * const解释为指向字符的常量指针


综合起来就是:

”next是一个指针,它指向一个函数,该函数返回一个指针,这个指针指向另一个指向char的常量指针。“


参考文献:《C专家编程》

分享到:
评论

相关推荐

    C语言复杂声明xiaoyi

    首先,我们遵循声明中的优先级规则,它决定了我们读取声明的顺序:名称、()、[]、*。这意味着在声明中,我们首先找到变量的名称,然后是括号,接着是方括号,最后是星号(表示指针)。 1. 示例1:`char * abc[]` ...

    C语言中的左右文法和结合优先级

    C语言中的左右文法是指在解析复杂的指针声明时使用的方法,即从右往左解析,并遵循结合优先级的规则。这种方法可以帮助开发者更好地理解和解析复杂的指针声明。 在C语言中,指针声明可以是非常复杂的,它们可能包含...

    水滴石穿C语言之声明的语法

    理解这些声明的关键在于掌握C语言的优先级规则和嵌套的声明结构。当遇到复杂的声明时,可以尝试从右向左或者从左向右分析,逐步解析每个部分的含义,同时注意括号的使用,它们可以帮助我们明确各个部分的组合关系。 ...

    如何理解和应用C语言中的复杂声明

    4 优先级和结合性在C语言中,类型说明符、指针运算符、数组运算符和函数运算符的优先级和结合性是理解复杂声明的关键。类型说明符的优先级最高,接着是函数运算符,然后是数组运算符,最后是指针运算符,它们都是从...

    xgugeng#dev-notes#分析C语言的声明1

    声明的优先级规则。A 声明从它的名字开始读取,然后按照优先级顺序依次读取。B 优先级从高到低一次是:B.1 声明中括号的部分B.2 后缀操作符括号()表示这是一

    大学C语言期末考试练习题(带详解答案).docx

    3. C语言程序中,要调用的函数不必在main函数中定义,可以在程序的任何位置定义,只要保证在调用前已经被正确声明或定义即可。 4. C语言程序的工作过程包括**编辑、编译、连接、运行**四个步骤。C语言区分大小写,...

    标准c语言笔记.pdf

    本文档是一份标准C语言的学习笔记,内容涵盖了结构体、宏定义、操作符优先级、函数声明等知识点,是结合作者在C/C++开发经历和阅读《THE C PROGRAMMING LANGUAGE》以及《C Traps and Pitfalls》等书籍的总结。...

    c语言实验学习系统

    接下来是运算符的运用,包括算术运算符、比较运算符、逻辑运算符、赋值运算符等,以及它们在表达式中的优先级规则。 控制流程是程序设计的核心,C语言提供了条件语句(如if...else和switch)以及循环结构(如for、...

    C语言中文API

    理解指针的使用,包括指针变量的声明、赋值、解引用以及数组与指针的关系,是C语言进阶的关键。 5. **函数**:C语言通过函数实现代码模块化,函数可以接收参数并返回值。理解函数的定义、调用、参数传递以及递归等...

    C语言期末考试选择题题库

    第7题中,C语言运算符的优先级中,最高的是类型转换运算符`(类型)`,其次是乘法或除法,接着是大于等于运算符,最后是加法运算符。 第8题涉及位运算符的使用。`^`是异或运算符。通过一系列异或操作,原本的`a`和`b`...

    C语言概念题大全

    在C语言中,变量可以在声明时进行初始化,也可以在声明后赋值。赋值操作会将右侧表达式的值赋给左侧的变量。在表达式中,赋值表达式的结果是赋值给变量的值。 ### 字符串与内存占用 C语言中字符串的存储需要额外的...

    嵌入式C语言编程规则

    本文将详细介绍嵌入式C语言编程中的一些关键规则和技术要点,帮助开发者更好地构建稳定、高效的嵌入式应用程序。 #### 二、模块划分 模块化编程是提高程序可读性、可维护性的有效手段。在嵌入式系统中,合理地进行...

    浙大C语言课件 ppt

    《浙大C语言课件 ppt》的讲解涵盖了C语言的基础知识,包括它的性质、语法规则以及简单的编程实例。C语言是一种通用编程语言,它的特点在于提供了基础的控制流程构造,但同时也是一种相对低级的语言,不直接处理复合...

    C语言基础教程PPT

    理解这些运算符的工作方式和优先级规则。 5. **流程控制语句**:包括条件语句(if, if...else, switch)、循环语句(for, while, do...while)和跳转语句(break, continue),用于实现程序的逻辑控制。 6. **数组...

    c语言几道简单易错题

    C语言是一种基础且强大的编程语言,对于初学者来说,理解并掌握其基本概念和语法规则是至关重要的。这里我们聚焦于几道初学者容易出错或混淆的题目,旨在帮助大家更好地理解和应用C语言。 1. 变量声明与初始化: 在...

    武汉大学计算机C语言习题库

    合法的赋值语句应该遵循C语言的语法规则,如`x=y==5;`表示如果`y`等于5,则`x`被赋值为1,否则为0。 8. **变量声明**:变量的声明需要指定数据类型,如`int i=5;`。变量的赋值可以通过赋值运算符`=`完成,但不能...

    南京大学《C语言程序设计》期末考试和上机考试模拟试卷(含答案).pdf

    1. 数组的声明与初始化:从模拟试卷提供的选项中,我们可以看到数组在C语言中的声明方式。例如,char型二维数组的声明及初始化,以及int型二维数组的不规则声明方式。此外,还有指向字符数组的指针数组的声明。 2. ...

Global site tag (gtag.js) - Google Analytics