精华内容
下载资源
问答
  • 在C语言中,标识符由大小写字母、数字和下划线组成且不能以数字开头的字符串。 合法标识符示例:_name、Next、word 非法标识符示例:10names、get-name 注:C语言区分大小写,即ab、aB、Ab、AB四个不同的标识符...
        

    C语言004——标识符和关键字

    标识符

    在编写程序时需要对变量、常量、函数、宏等实体进行命名,这些名称成为标识符。在C语言中,标识符是由大小写字母、数字和下划线组成且不能以数字开头的字符串。

    合法标识符示例:_name、Next、word

    非法标识符示例:10names、get-name

    注:C语言区分大小写,即ab、aB、Ab、AB是四个不同的标识符。

    关键字

    关键字又称作保留字,其对编译器有特殊意义,用来指示说明特定的功能,不能用于标识符。

    C89中规定了32个关键字,如下所示:

    auto break case char
    const continue default do
    double else enum extern
    float for goto if
    int long register return
    short signed sizeof static 
    struct switch typedef union 
    unsigned void volatile while
    

    C99新增了五个关键字

    _Bool
    _Imaginary
    restrict
    _Complex
    inline
    

    C11新增了七个关键字

    _Alignas
    _Alignof
    _Atomic
    _Generic
    _Noreturn
    _Static_assert
    _Thread_local
    
    展开全文
  • C语言标识符

    2019-07-22 10:47:28
    C语言规定,合法的标识符必须由英文字母或下划线开头,字母、数字和下划线的序列。 在C语言中,大写字母和小写字母被认为两个不同的字符,如SUM和sum不同的标识符。习惯上符号常量名用大写字母表示,变量名用...

    C语言标识符

    C语言规定,合法的标识符必须由英文字母或下划线开头,是字母、数字和下划线的序列。

    在C语言中,大写字母和小写字母被认为是两个不同的字符,如SUM和sum是不同的标识符。习惯上符号常量名用大写字母表示,变量名用小写字母表示。
    
    C语言标识符分为以下三类:
    

    (1)关键字(32个)

        关键字又称为保留字,是C语言中用来表示特殊含义的标识符,由系统提供。
    

    auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while

       关键字有特定的语法意义,不允许用户重新定义。关键字不能拼错,也不能用作变量名或函数名。
    

    (2) 预定义标识符

       C语言中预先定义了一些标识符,他们有特定的含义,通常用做固定的库函数名或预编译处理中的专门命令。如scanf、printf、sin、define、include等。C语言允许用户标识符与预定义标识符同名,但这将使这些标识符失去系统规定的原意。为了避免误解,建议用户为标识符取名时尽量不要与系统预先定义的标准标识符(如标准函数)同名。
    

    (3)用户标识符

      用户标识符是由用户自己定义的标识符,命名时应遵守标识符命名的原则,最好做到见名知义,这样可以提高程序的可读性。一般选用相应的英文单词或拼音字母的形式,尽量不要使用简单的代数符号。  
    
    展开全文
  • C语言的标识符

    千次阅读 2015-08-02 22:41:32
    编写程序的过程中,最让人头疼的问题往往如何给变量、宏和函数等起一个清晰而响亮的名称。这些名称就是C语言中的标识符。这篇文章介绍了如何构建合法的C语言标识符,C程序的关键字及一种定义标识符的规范。

    在编写程序的过程中,最让人头疼的问题往往是如何给变量、宏和函数等起一个清晰而响亮的名称。这些名称就是C语言中的标识符。

    C语言中合法的标识符必须仅包含数字、字母或下划线,且必须以字母或下划线开头。下例中length, _width和area2都是合法的标识符,而2length以数字开头,wid-th中间包含非数字、字母和下划线的其他符号,都不是合法的标识符。

    /***********************************
     * identifier.c                    *
     *合法的标识符与不合法的标识符          *
     ***********************************/
    
    #include <stdio.h>
    
    int main()
    {
      float length = 10.0f;
      float _width = 20.0f;
      float area2 = length * _width;
    
      printf("Area: %f\n", area2);
    
      float 2length = 0.0f;
      float wid-th = 0.0f;
    
      return 0;
    }

    合法与非法的标识符

    C语言中包含一些关键字,这些关键词对编译器而言具有特殊意义,也不能作为标识符使用。C89中包含的关键字有32个,如下表

    auto double int struct
    break else long switch
    case enum register typedef
    char extern return union
    const float short unsigned
    continue for signed void
    default goto sizeof volatile
    do if static while

    C语言区分大小写,字母序列相同而大小写不同的标识符被当作不同的标识符。这样的标识符可以在相同的作用范围内同时存在,表示不同的意义。下例在main函数中定义了3个变量Height, height和heiGHt,编译正常通过,这3个标识符用以指称3个不同的变量。

    /*************************************
     *identifier1.c                      *
     *区分大小写                           *
     *************************************/
    
    #include <stdio.h>
    
    int main()
    {
      float Height = 3.0f;
      float height = 5.0f;
      float heiGHt = 10.0f;
    
      printf("Height: %f\n", Height);
      printf("height: %f\n", height);
      printf("heiGHt: %f\n", heiGHt);
    
      return 0;
    }

    区分大小写

    为了增加程序的可读性和可理解性,在一个团队里往往采用同一种标识符的命名规范。例如下面就是几条常用的规范:

    • 宏名称。当标识符作为宏的名称使用时其中的字母均大写。宏由预处理指令#define定义,在预处理过程中由其所表示的内容替换。常用于定义一些具有特殊意义、多次被使用的常量。
    • 变量名称。当标识符作为变量的名称时,若标识符只包含一个单词,则只使用小写字母;若包含多个单词,第一个单词小写其后每个单词首字母大写。
    • 函数名称。当标识符作为函数的名称时,若标识符只包含一个单词,则首字母大写;若包含多个单词,则每个单词的首字母大写。

    下面是一个应用上述命名规范的一个简单例子:

    /*******************************
     *identifier2.c                *
     *一个整体的例子                 *
     *******************************/
    
    #include <stdio.h>
    
    /*宏定义,RATE为宏名称*/
    #define RATE 0.05
    
    /*函数定义,CalculateAmount为函数名称*/
    float CalculateAmount(int amount)
    {
      return amount * (1 + RATE);
    }
    
    int main()
    {
      /*变量定义,amount为变量名称*/
      float amount = 100.00f;
    
      /*又一个变量定义,amountRateAdded为变量名词*/
      float amountRateAdded = CalculateAmount(amount);
    
      printf("The amount is %f\n",amountRateAdded);
    
      return 0;
    }

    完整例子

    参考文献

    1. K.N. King 著,吕秀峰 译. C语言程序设计-现代方法. 人民邮电出版社
    展开全文
  • python标识符关键字

    2020-09-08 19:10:42
    标识符和关键字都是之具有某种意义的标记和称谓,就像人的外号一样。所谓的标识符就是代码的分号、单引号、双引号等等就是...python3,非ASCII标识符也是合法的关键字是python系统保留使用的标识符,也就是

    标识符和关键字都是之中具有某种意义的标记和称谓,就像人的外号一样。所谓的标识符就是代码的分号、单引号、双引号等等就是标识符,而代码中的if、for等等就是关键字。
    python语言的标识符使用规则和C语言类似,具体说明如下:

    • 第一个字符必须是字母或者下划线(_)。
    • 剩下的字符可以是字母、数字、下划线。
    • 区分大小写。比如foo跟Foo是不同的。
    • 标识符不能以数字开头,出了下划线外,其他的符号都不允许使用。
    • 在python3中,非ASCII标识符也是合法的。

    关键字是python系统保留使用的标识符,也就是说只有python系统才能使用,开发者不能把它们用作任何标识符的名称。我们可以通过调用keyword模块查看所有关键字:

    import keyword               # 导入名为“keyword”的内置标准库
    print(len(keyword.kwlist))   # 查看关键字的个数
    print(keyword.kwlist)        # 列出所有的关键字
    

    至于每个关键字的用途后续会陆续讲到,但是要注意:以下划线尅是或者结束的标识符通常有特殊的特殊意义。例如,以一个下划线开始的标识符(如 “_foo”)不能用from module import语句导入。前后均有两个下划线的标识符(如“init”)被特殊方法保留。前面有两个下划线的标识符(如“__bar”)用来实现类的私有化属性。通常情况下应该避免使用类似的标识符。

    展开全文
  • C语言中的#和##

    2016-01-21 12:23:00
    在C语言中,#和##都预处理指令。 #表示的是将参数转换为字符串 ##表示黏贴,但是只能黏贴C语言除了关键字以外的合法标识符。在单一宏定义中,最多可以出现#和##组合形式。 我们来看看一个例子: #include <...
  • 什么是标识符 在C语言中变量名函数名数组名等按照一定规则命名的符号就称为标识符 2.C语言中标志符的命名规则 1.合法的标志符只能有字母数字或下划线组成 2.标识符的第一个字母只能由字母或下划线不能使数字 3.严格...
  • C语言到C++升级

    2016-12-21 09:23:41
    在C语言中,重复定义多个同名的全局变量是合法的(多个同名的全局变量最终会被链接到全局数据区的同一个地址空间上) 在C++ 中,不允许定义多个同名的全局变量 struct 关键字的加强 --C语言中的 struct 定义...
  • 合法的标识符: 字母、数字和下划线组成,且第一个字符必须字母或下划线. 在C语言的标识符,大写字母和小写字母被认为两种不同的字符. 标识符分为三类: 关键字、预定义标识符和用户标识符. 当用户标识符与...
  •  在C语言中使用词汇分为六类:标识符关键字,运算符,分隔符,常量,注释符等。 1.标识符  在程序中使用变量名、函数名、标号等统称为标识符。除库函数函数名由系统定义外,其余都由用户自定义。C 规定...
  • *2.5 在C语言中是否有模拟继承等面向对象程序设计特性好方法? 2.6 为什么声明externf(structx*p);给我报了一个晦涩难懂警告信息?  2.7 我遇到这样声明结构代码:structname{intnamelen;charnamestr[1];}...
  • 一选择题 1不合法的字符常量B A \t B) A C a D\x32 2合法的字符常量D A \084 B) \84 C ab D 2 B是C语言提供的合法的数据类型关键字 A Float B signed C integer DChar 3以下各组标识符中合法的标识符是4 1AB01...
  • 1.标识符开头不得以数字命名。且中间不得有空格。2.不合法的用户标识符为:a&b ab.c ...3.不是C语言提供的数据类型关键字是:Float Char interge integer不对,Float和Char首字母大写,不同于float和char。
  • c语言提高习题

    2018-03-30 21:38:13
    c语言强化训练习题1一个C程序可以包含...6. 在C语言中,反斜杠字符() (A)\n (B)\t (C)\v (D)\\ 7. 下列常数中,不合法的C常量() (A)-0x3b1 (B)123e+2.3 (C)’}’ (D)6e+7 8. 写出下面程序的输出结果()
  • 你必须知道495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    *2.5 在C语言中是否有模拟继承等面向对象程序设计特性好方法? 2.6 为什么声明externf(structx*p);给我报了一个晦涩难懂警告信息? 2.7 我遇到这样声明结构代码:structname{intnamelen;charnamestr[1];}...
  •  在C语言中使用词汇分为六类:标识符关键字,运算符,分隔符,常量,注释符等。 1.标识符  在程序中使用变量名、函数名、标号等统称为标识符。除库函数函数名由系统定义外,其余都由用户自定义。C 规定...
  • 这样是合法的和可移植的吗? 2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1;却明确说明不能这样做? 2.9 为什么不能用内建的==和!=操作符比较结构? 2.10 结构传递和返回是如何实现的? 2.11 如何...
  • 《你必须知道495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    这样是合法的和可移植的吗? 23  2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1却明确说明不能这样做? 25 2.9 为什么不能用内建的==和!=操作符比较结构? 26 2.10 结构传递和返回是如何实现...
  • 这样是合法的和可移植的吗? 23  2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1却明确说明不能这样做? 25 2.9 为什么不能用内建的==和!=操作符比较结构? 26 2.10 结构传递和返回是如何实现...
  • c语言你知识点总结

    2018-05-15 00:42:54
    0.1在C语言中可以写成.1。 3)实型数据的合法形式: a、2.333e-1 就是合法的,且数据2.333×10-1。 b、考试口诀:e前e后必有数,e后必为整数。请结合书上的例子。 4) 整型,单精度一般4个字节, 字符型1个字节...
  • 难道在C语言中结构不能包含指向自己指针吗? 1.15 如何定义一对相互引用结构? 1.16 Struct{ }x1;和typedefstruct{ }x2;这两个声明有什么区别? 1.17 “typedefint(*funcptr)();”什么意思? const...
  • 这样是合法的和可移植的吗? 52 2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1;却明确说明不能这样做? 54 2.9 为什么不能用内建的==和!=操作符比较结构? 55 2.10 结构传递和返回是如何实现的...
  • 这样是合法的和可移植的吗? 52 2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1;却明确说明不能这样做? 54 2.9 为什么不能用内建的==和!=操作符比较结构? 55 2.10 结构传递和返回是如何实现的...
  • C语言教程(谭浩强)

    2008-12-16 10:35:00
    在C语言中使用词汇分为六类:标识符关键字,运算符,分隔符,常量,注释符等。 1.标识符 在程序中使用变量名、函数名、标号等统称为标识符。除库函数函数名由系统定义外,其余都由用户自定义。C 规定,...
  • 这样是合法的和可移植的吗?  2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1却明确说明不能这样做?  2.9 为什么不能用内建的==和!=操作符比较结构?  2.10 结构传递和返回是如何实现的?  ...
  • 这样是合法的和可移植的吗? 2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1却明确说明不能这样做? 2.9 为什么不能用内建的==和!=操作符比较结构? 2.10 结构传递和返回是如何实现的? 2.11 如何向...

空空如也

空空如也

1 2 3
收藏数 41
精华内容 16
关键字:

在c语言中关键字是合法的标识符

c语言 订阅