精华内容
下载资源
问答
  • c#跟c语言标识符的区别 In C, C++, C#andother programming languages, an identifier is a name that is assigned by the user for a program element such asvariable, type,template, class, functionornamespace...

    c#跟c语言标识符的区别

    In C, C++, C# and other programming languages, an identifier is a name that is assigned by the user for a program element such as variable, type, template, class, function or namespace. It is usually limited to letters, digits, and underscores. Certain words, such as "new," "int" and "break," are reserved keywords and cannot be used as identifiers. Identifiers are used to identify a program element in the code. 

    在C,C ++, C#和其他编程语言中,标识符是用户为程序元素(例如, 变量 ,类型,模板,类,函数或名称空间)分配的名称。 它通常限于字母,数字和下划线。 某些单词(例如“ new”,“ int”和“ break”)是保留关键字,不能用作标识符。 标识符用于识别代码中的程序元素。

    Computer languages have restrictions for which characters can appear in an identifier. For example, in early versions of the C and C++ languages, identifiers were restricted to a sequence of one or more ASCII letters, digits, which may not appear as the first character, and underscores. Later versions of these languages support almost all Unicode characters in an identifier with the exception of white space characters and language operators.

    计算机语言对标识符中可以出现的字符有限制。 例如,在C和C ++语言的早期版本中,标识符被限制为一个或多个ASCII字母,数字(可能不会显示为第一个字符)和下划线的序列。 这些语言的更高版本支持标识符中的几乎所有Unicode字符,但空格字符和语言运算符除外。

    You designate an identifier by declaring it early in the code. Then, you can use that identifier later in the program to refer to the value you assigned to the identifier.

    您可以通过在代码的早期进行声明来指定标识符。 然后,您可以稍后在程序中使用该标识符来引用您分配给该标识符的值。

    标识符规则 ( Rules for Identifiers )

    When naming an identifier, follow these established rules:

    命名标识符时,请遵循以下已建立的规则:

    • An identifier cannot be a C# keyword. Keywords have predefined special meanings to the compiler.

      标识符不能是C#关键字。 关键字对编译器具有预定义的特殊含义。
    • It cannot have two consecutive underscores.

      它不能有两个连续的下划线。
    • It can be a combination of numbers, letters, connectors, and Unicode characters.

      它可以是数字,字母,连接符和Unicode字符的组合。
    • It must start with a letter of the alphabet or an underscore, not a number.

      它必须以字母或下划线开头,而不是数字。
    • It should not include white space.

      它不应包含空格。
    • It cannot have more than 511 characters.

      它不能超过511个字符。
    • It has to be declared before it is referred.

      必须先声明它,然后再引用它。
    • Two identifiers cannot have the same name.

      两个标识符不能具有相同的名称。
    • Identifiers are case sensitive.

      标识符区分大小写。

    For implementations of programming languages that are compiled, identifiers are often only compile-time entities. That is, at run time the compiled program contains references to memory addresses and offsets rather than the textual identifier tokens—these memory addresses or offsets having been assigned by the compiler to each identifier.

    对于已编译的编程语言的实现,标识符通常仅是编译时实体。 也就是说,在运行时,编译后的程序包含对内存地址和偏移量的引用,而不是文本标识符标记-这些内存地址或偏移量已由编译器分配给每个标识符。

    逐字标识符 ( Verbatim Identifiers )

    Adding the prefix "@" to a keyword enables the keyword, which is normally reserved, to be used as an identifier, which can be useful when interfacing with other programming languages. The @ is not considered part of the identifier, so it might not be recognized in some languages. It is a special indicator to not treat what comes after it as a keyword, but rather as an identifier. This type of identifier is called a verbatim identifier. Using verbatim identifiers is allowed but strongly discouraged as a matter of style.

    在关键字上添加前缀“ @”可以使通常保留的关键字用作标识符,这在与其他编程语言连接时很有用。 @不被视为标识符的一部分,因此在某些语言中可能无法识别。 这是一个特殊的指标,不要将其后的内容视为关键字,而应视为标识符。 这种类型的标识符称为逐字标识符。 允许使用逐字标识符,但出于风格考虑,强烈建议不要使用逐字标识符。

    翻译自: https://www.thoughtco.com/definition-of-identifier-958092

    c#跟c语言标识符的区别

    展开全文
  • C语言标识符

    2016-04-04 12:57:57
     是标识符。 2,标识符的命名规则:  必须有26个英文字母0~9的10个数字和“_”组成,并且不能以  数字开头,严格区分大小写,标识符不可以关键字。 3,标识符的命名规范,以驼峰原则名命名。标识符的第一个...
    1,标识符就是程序员给一些单词赋予了特殊的含义,这些单词就
       是标识符。
    2,标识符的命名规则:
       必须是有26个英文字母0~9的10个数字和“_”组成,并且不能以
       数字开头,严格区分大小写,标识符不可以是关键字。(美元符号$也可以作为标识符)
    3,标识符的命名规范,以驼峰原则名命名。标识符的第一个单词
       全部小写从第二个单词开始首字母为大写。尽量通俗易懂让人
       看到就明白什么意思。


    展开全文
  • C语言标识符的属性

    千次阅读 2014-11-24 20:33:32
    C语言标识符   什么是C语言的存储类(storage class) 总的可以这样概括下:在C中storage class描述的变量或者函数的作用域(scope),它们的可见性(或者叫链接属性,linkage),以及它们的生存期(lifetime...

    C语言标识符

     

    什么是C语言的存储类(storage class)

    总的可以这样概括下:在C中storage class描述的是变量或者函数的作用域(scope),它们的可见性(或者叫链接属性,linkage),以及它们的生存期(lifetime,生存期由storage duration决定)。

    直白点来说,由storage class我们可以知道变量存储在哪里;如果没有给变量赋初值,那么可以知道编译器会给变量赋怎样的初值;以及变量的生存周期和作用域等属性。

    首先我们要明白的是,存储时期(storage duration)决定了变量在内存中存在的时间,变量的作用域(scope)和链接属性(linkage)一起表明程序的哪些部分可以通过变量名来使用一个变量。

    C语言的命名空间(name space)

    什么是作用域(scope)

    什么是链接属性(linkage)

    什么是存储时期(storage duration)

    作用域(scope)和链接属性(linkage)的区别

    存储时期(storage duration)和生命期(lifetime)的区别

     

    scope,linkage,storage duration

     

    参考链接:

    《 C语言中标识符的作用域、命名空间、链接属性、生命周期、存储类型

    也谈C语言标识符的NAMESPACE

    Linkage in C and C++

    Internal and External Linkage in C++

    展开全文
  • 什么是标识符C语言中变量名函数名数组名等按照一定规则命名的符号就称为标识符 2.C语言中标志符的命名规则 1.合法的标志符只能有字母数字或下划线组成 2.标识符的第一个字母只能由字母或下划线不能使数字 3.严格...
  • C语言 标识符 | static

    2020-09-14 21:07:23
    1、什么是static? static C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。 2、为什么要引入static? 函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈...

    在学习VC++深入详解第四章简单绘图时遇到了静态函数,因此便开始了对于STATIC标示符的挖掘学习

    1、什么是static?
    static 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。

    2、为什么要引入static?
    函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,
    函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数
    中此变量的值保存至下一次调用时,如何实现? 最容易想到的方法是定义一个全局的变量,
    但定义为一个全局变量有许多缺点,最明显的缺点是破坏了此变量的访问范围(使得在此函数
    中定义的变量,不仅仅受此函数控制)。

    3、什么时候用static?
    需要一个数据对象为整个类而非某个对象服务,同时又力求不破坏类的封装性,即要求此成员隐藏在类的内部,对外不可见。

    4、static的内部机制:
    静态数据成员要在程序一开始运行时就必须存在。因为函数在程序运行中被调用,所以静态数据成员不能在任何函数内分配空间和初始化。
    这样,它的空间分配有三个可能的地方,一是作为类的外部接口的头文件,那里有类声明;二是类定义的内部实现,那里有类的成员函数定义;三是应用程序的main()函数前的全局数声明和定义处。
    静态数据成员要实际地分配空间,故不能在类的声明中定义(只能声明数据成员)。类声明只
    声明一个类的“尺寸和规格”,并不进行实际的内存分配,所以在类声明中写成定义是错误的。
    它也不能在头文件中类声明的外部定义,因为那会造成在多个使用该类的源文件中,对其重复定义。
    static被引入以告知编译器,将变量存储在程序的静态存储区而非栈上空间,静态数据成员按定
    义出现的先后顺序依次初始化,注意静态成员嵌套时,要保证所嵌套的成员已经初始化了。消
    除时的顺序是初始化的反顺序。

    5、static的优势:
    可以节省内存,因为它是所有对象所公有的,因此,对多个对象来说,静态数据成员只存储一 处,供所有对象共用。静态数据成员的值对每个对象都是一样,但它的值是可以更新的。只要对静态数据成员的值更新一次,保证所有对象存取更新后的相同的值,这样可以提高时间效率。

    6、引用静态数据成员时,采用如下格式:
    <类名>::<静态成员名>
    如果静态数据成员的访问权限允许的话(即public的成员),可在程序中,按上述格式来引用静态数据成员。

    7、注意事项:
    (1)类的静态成员函数是属于整个类而非类的对象,所以它没有this指针,这就导致了它仅能访问类的静态数据和静态成员函数。
    (2)不能将静态成员函数定义为虚函数。
    (3)由于静态成员声明于类中,操作于其外,所以对其取地址操作,就多少有些特,变量地址是指向其数据类型的指针 ,函数地址类型是一个“nonmember函数指针”。

    (4)由于静态成员函数没有this指针,所以就差不多等同于nonmember函数,结果就产生了一个意想不到的好处:成为一个callback函数,使得我们得以将C++和C-based X Window系统结合,同时也成功的应用于线程函数身上。
    (5)static并没有增加程序的时空开销,相反她还缩短了子类对父类静态成员的访问时间,节省了子类的内存空间。

    (6)静态数据成员在<定义或说明>时前面加关键字static。

    (7)静态数据成员是静态存储的,所以必须对它进行初始化。

    (8)静态成员初始化与一般数据成员初始化不同:

    初始化在类体外进行,而前面不加static,以免与一般静态变量或对象相混淆;
    初始化时不加该成员的访问权限控制符private,public等;
    初始化时使用作用域运算符来标明它所属类;
    所以我们得出静态数据成员初始化的格式:
    <数据类型><类名>::<静态数据成员名>=<值>

    (9)为了防止父类的影响,可以在子类定义一个与父类相同的静态变量,以屏蔽父类的影响。这里有一点需要注意:我们说静态成员为父类和子类共享,但我们有重复定义了静态成员,这会不会引起错误呢?不会,我们的编译器采用了一种绝妙的手法:name-mangling 用以生成唯一的标志。
    静态数据成员
    在类中,静态成员可以实现多个对象之间的数据共享,并且使用静态数据成员还不会破坏隐藏 的原则,即保证了安全性。因此,静态成员是类的所有对象中共享的成员,而不是某个对象的成员。
    使用静态数据成员可以节省内存,因为它是所有对象所公有的,因此,对多个对象来说,静态数据成员只存储一处,供所有对象共用。静态数据成员的值对每个对象都是一样,但它的值是可以更新的。只要对静态数据成员的值更新一次,保证所有对象存取更新后的相同的值,这样 可以提高时间效率。
    静态数据成员的使用方法和注意事项如下:
    1、静态数据成员在定义或说明时前面加关键字static。
    2、静态成员初始化与一般数据成员初始化不同。静态数据成员初始化的格式如下:
    <数据类型><类名>::<静态数据成员名>=<值>
    这表明:

    (1) 初始化在类体外进行,而前面不加static,以免与一般静态变量或对象相混淆。
    (2) 初始化时不加该成员的访问权限控制符private,public等。
    (3) 初始化时使用作用域运算符来标明它所属类,因此,静态数据成员是类的成员,而不是对象的成员。
    3、静态数据成员是静态存储的,它是静态生存期,必须对它进行初始化。
    4、引用静态数据成员时,采用如下格式:
    <类名>::<静态成员名>
    如果静态数据成员的访问权限允许的话(即public的成员),可在程序中,按上述格式来引用静态数据成员。
    静态成员函数
    静态成员函数和静态数据成员一样,它们都属于类的静态成员,它们都不是对象成员。因此,对静态成员的引用不需要用对象名。

    在静态成员函数的实现中不能直接引用类中说明的非静态成员,可以引用类中说明的静态成员。如果静态成员函数中要引用非静态成员时,可通过对象来引用。

    下面看一个例子:
    #include <iostream.h>
    class Point
    {
    public:
    void output()
    {
    }
    static void init()
    {
    }
    };
    void main( void )
    {
    Point pt;
    pt.init();
    pt.output();
    }
    这样编译是不会有任何错误的。
    下面这样看
    #include <iostream.h>
    class Point
    {
    public:
    void output()
    {
    }
    static void init()
    {
    }
    };
    void main( void )
    {
    Point::output();
    }
    这样编译会处错,错误信息:illegal call of non-static member function,为什么?
    因为在没有实例化一个类的具体对象时,类是没有被分配内存空间的。
    好的再看看下面的例子:
    #include <iostream.h>
    class Point
    {
    public:
    void output()
    {
    }
    static void init()
    {
    }
    };
    void main( void )
    {
    Point::init();
    }
    这时编译就不会有错误,因为在类的定义时,它静态数据和成员函数就有了它的内存区,它不属于类的任何一个具体对象。
    好的再看看下面的例子:
    #include <iostream.h>
    class Point
    {
    public:
    void output()
    {
    }
    static void init()
    {
    x = 0;
    y = 0;
    }
    private:
    int x;
    int y;
    };
    void main( void )
    {
    Point::init();
    }
    编译出错:
    illegal reference to data member ‘Point::x’ in a static member function
    illegal reference to data member ‘Point::y’ in a static member function
    在一个静态成员函数里错误的引用了数据成员,
    还是那个问题,静态成员(函数),不属于任何一个具体的对象,那么在类的具体对象声明之前就已经有了内存区,
    而现在非静态数据成员还没有分配内存空间,那么这里调用就错误了,就好像没有声明一个变量却提前使用它一样。
    也就是说在静态成员函数中不能引用非静态的成员变量。
    好的再看看下面的例子:
    #include <iostream.h>
    class Point
    {
    public:
    void output()
    {
    x = 0;
    y = 0;
    init();
    }
    static void init()
    {

    }
    private:
    int x;
    int y;
    };
    void main( void )
    {
    Point::init();
    }
    好的,这样就不会有任何错误。这最终还是一个内存模型的问题,
    任何变量在内存中有了自己的空间后,在其他地方才能被调用,否则就会出错。
    好的再看看下面的例子:
    #include <iostream.h>
    class Point
    {
    public:
    void output()
    {
    }
    static void init()
    {
    x = 0;
    y = 0;
    }
    private:
    static int x;
    static int y;
    };
    void main( void )
    {
    Point::init();
    }
    编译:
    Linking…
    test.obj : error LNK2001: unresolved external symbol “private: static int Point::y”
    test.obj : error LNK2001: unresolved external symbol “private: static int Point::x”
    Debug/Test.exe : fatal error LNK1120: 2 unresolved externals
    执行 link.exe 时出错.
    可以看到编译没有错误,连接错误,这又是为什么呢?
    这是因为静态的成员变量要进行初始化,可以这样:
    #include <iostream.h>
    class Point
    {
    public:
    void output()
    {
    }
    static void init()
    {
    x = 0;
    y = 0;
    }
    private:
    static int x;
    static int y;
    };
    int Point::x = 0;
    int Point::y = 0;
    void main( void )
    {
    Point::init();
    }
    在静态成员数据变量初始化之后就不会出现编译错误了。
    再看看下面的代码:
    #include <iostream.h>
    class Point
    {
    public:
    void output()
    {
    }
    static void init()
    {
    x = 0;
    y = 0;
    }
    private:
    static int x;
    static int y;
    };
    void main( void )
    {
    }
    编译没有错误,为什么?
    即使他们没有初始化,因为我们没有访问x,y,所以编译不会出错。

    C++会区分两种类型的成员函数:静态成员函数和非静态成员函数。这两者之间的一个重大区别是,静态成员函数不接受隐含的this自变量。所以,它就无法访问自己类的非静态成员。

    在某些条件下,比如说在使用诸如pthread(它不支持类)此类的多线程库时,就必须使用静态的成员函数,因为其地址同C语言函数的地址兼容。这种铜限制就迫使程序员要利用各种解决办法才能够从静态成员函数访问到非静态数据成员。

    第一个解决办法是声明类的所有数据成员都是静态的。运用这种方式的话,静态的成员函数就能够直接地访问它们,例如:

    class Singleton
    {
    public:
    static Singleton * instance();
    private:
    Singleton * p;
    static Lock lock;
    };

    Singleton * Singleton::instance()
    {
    lock.getlock(); // fine, lock is static
    if (!p)
    p=new Singleton;
    lock.unlock();
    return p;
    }

    这种解决方法不适用于需要使用非静态数据成员的类。

    访问非静态数据成员

    将参照传递给需要考量的对象能够让静态的成员函数访问到对象的非静态数据:

    class A
    {
    public:
    static void func(A & obj);
    intgetval() const; //non-static member function
    private:
    intval;
    };

    静态成员函数func()会使用参照obj来访问非静态成员val。

    voidA::func(A & obj)
    {
    int n = obj.getval();
    }

    将一个参照或者指针作为静态成员函数的自变量传递,就是在模仿自动传递非静态成员函数里this自变量这一行为。

    展开全文
  • C语言标识符命名规则

    千次阅读 2013-08-24 12:30:10
    预备知识:什么是内部标识符和外部标识符? A N S I标准规定,标识符可以为任意长度,但外部名必须至少能由前6个字符唯一地区分,并且不区分大小写。这里外部名指的在链接过程中所涉及的标识符,其中包括文件...
  • 我之前一直有一个疑问,对数组名取地址和数组名的值为什么是一样的。单纯听别人口头讲述这个东西其实我觉得还是有点难以理解,我觉得从汇编的角度来看待这个问题,非常好理解。 int main() { int a = 1; int c...
  • 简单的字符串处理,不过你要记得字符串满足什么样的条件才算是合法的C语言标识符——  1只能由字母、数字、下划线组成;  2数字不能首字符(比如3he就不合法)  剩下的就是字符串处理的细节,要细心一点。 ...
  • C语言标识符是区分大小写的。更多相关问题四号定位法的“编号16-3-5-14”表示该物品存放于16号库房3号货架5号仓间的14号货位。下列属于兴趣的第二层次是以下哪些属于计算机外部设备( )。市场通过价格信号为处于...
  • C语言标识符是指用来标识某个实体的一个符号,在不同的应用环境下有不同的含义,标识符由字母(A-Z,a-z)、数字(0-9)、下划线“_”组成,并且首字符不能是数字,但可以是字母或者下划线。例如,正确的标识符:abc...
  • C语言标识符是指用来标识某个实体的一个符号,在不同的应用环境下有不同的含义,标识符由字母(A-Z,a-z)、数字(0-9)、下划线“_”组成,并且首字符不能是数字,但可以是字母或者下划线。例如,正确的标识符:abc,a1...
  • 什么是变量? 一句话,变量存储数据的值的空间。由于数值的类型有多种,有整数、小数(浮点数)、字符等等,那么对应的变量就有整型变量、浮点型变量、字符型变量。变量还有其他的具体分类。整型变量还可具体分为...
  • C语言:标识符

    2014-11-01 10:44:00
    2.标示符的起名得讲究一定的规则,不能随便起名,取的名字要让人一眼看过去就知道是什么意思 命名规则: 1.标示符只能由26个英文字母的大小写,0~9的10个阿拉伯数字,下划线_组成 2.严格区分大小写,比如test跟Test...
  • 什么是标识符?  顾名思义,标识符就是用来表示某种含义的符号(如同我们生活中的名字一样)。在C语言中,定义符号常量,变量,数组,结构体,枚举,函数等都需要一个名称,我们把这名称成为标识符。  2.标识符...
  • 要跟关键字区分开来:关键字是C语言默认提供的符号,标识符是程序员自定义的 2. 标识符的作用 1) 标识符,从字面上理解就是用来标识某些东西的符号,标识的目的就是为了将这些东西区分开来 2) 其实,标识符的作用就...
  • 要跟关键字区分开来,关键字是C语言默认提供的符号,而标识符是程序员自己定义的。 2、标识符的作用  1)标识符,从字面上理解就是用来表示某些东西的符号,标识的目的就是为了将这些东西区分开 ...
  • 的,这题很简单,但是1A也不是那么容易,为什么把这么简单的题记录在博客呢,因为提醒自己要严谨,注意细节。 分析: 这题就是合法的命名规则。规定开头不能用数字,可以用大小写字母和下划线,下划线相当于字母...
  • 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 变量和常量是程序处理的两种基本数据对象。声明语句说明变量的名字和类型,也可以指定变量的初值。运算符指定将要进行的操作。表达式...
  • 杭电ACM 2024:C语言合法标识符

    千次阅读 2015-05-05 16:18:17
    原创作品 转载请注明出处http://blog.csdn.net/always2015/article/details/45504045这一道题不难,主要在于掌握什么是合法的c字符串,合法的字符串由字母,下划线,数字组成,开头必须字母或者下划线。...
  • C语言 关键字、标识符、注释

    千次阅读 2016-01-10 21:22:49
    1.什么是关键字 关键字就是C语言提供的有特殊含义的符号,有些地方也叫做“保留字”。   2.一共有哪些关键字 C语言一共提供了32个关键字,这些关键字都被C语言赋予了特殊含义。 auto double int struct ...
  • 注释可以用来解释某一段程序或者某一行代码是什么意思,方便程序员之间的交流沟通 注释可以是任何文字,也就是说可以写中文 被注释的内容在开发工具中会有特殊的颜色 为什么要使用注释? 没有编写任何注释的程序 ...
  • 满意答案Julykkk2013.07.25采纳率:56%等级:...//定义了一个共用体变量frecy,定义时要特别注意末尾的分号//定义测频率的函数,返回数据类型为uint,C语言中无此数据类型,有可能你用#define自定义的uint freq(v...
  • 1、 什么是关键字:关键字是C语言提供的,具有一定含义的符号,共计32个 例如:main int char shot long 等等 2、 标识符自己定义的,具有一定含义的符号(自定义的) 标识符命名规则: 1)26个字母、数字...
  • 1.C# 简介C# 一个现代的、通用的、面向对象的编程语言;特点: 1.易于学习的结构化语言2.它产生高效率的程序 3.可以处理底层的活动4.可以多种平台上编译.5. .Net 框架的一部分。2. C 环境设置 C# 与 .Net 框架...
  • 计算机里的“宏”一...其中的标识符就是所谓的符号常量,也称为“宏名”。 预处理(预编译)工作也叫做宏展开:将宏名替换为字符串。 例:#define PI 5201314 把程序中出现的PI全部换成5201314 说明: (...
  • C语言】03-关键字、标识符、注释

    千次阅读 2013-09-30 23:07:59
    1.什么是关键字 关键字就是C语言提供的有特殊含义的符号,有些地方也叫做“保留字”。   2.一共有哪些关键字 C语言一共提供了32个关键字,这些关键字都被C语言赋予了特殊含义。 auto double int ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 455
精华内容 182
关键字:

c语言标识符是什么

c语言 订阅