C++声明、定义、变量、数据类型专题
- 格式:pdf
- 大小:294.58 KB
- 文档页数:5
C语⾔中变量的声明和定义变量声明和变量定义变量定义:⽤于为变量分配存储空间,还可为变量指定初始值。
程序中,变量有且仅有⼀个定义。
变量声明:⽤于向程序表明变量的类型和名字。
定义也是声明,extern声明不是定义定义也是声明:当定义变量时我们声明了它的类型和名字。
extern声明不是定义:通过使⽤extern关键字声明变量名⽽不定义它。
[注意]变量在使⽤前就要被定义或者声明。
在⼀个程序中,变量只能定义⼀次,却可以声明多次。
定义分配存储空间,⽽声明不会。
C++程序通常由许多⽂件组成,为了让多个⽂件访问相同的变量,C++区分了声明和定义。
变量的定义(definition)⽤于为变量分配存储空间,还可以为变量指定初始值。
在程序中,变量有且仅有⼀个定义。
声明(declaration)⽤于向程序表明变量的类型和名字。
定义也是声明:当定义变量的时候我们声明了它的类型和名字。
可以通过使⽤extern声明变量名⽽不定义它。
不定义变量的声明包括对象名、对象类型和对象类型前的关键字extern。
extern声明不是定义,也不分配存储空间。
事实上它只是说明变量定义在程序的其他地⽅。
程序中变量可以声明多次,但只能定义⼀次。
只有当声明也是定义时,声明才可以有初始化式,因为只有定义才分配存储空间。
初始化式必须要有存储空间来进⾏初始化。
如果声明有初始化式,那么它可被当作是定义,即使声明标记为extern。
任何在多⽂件中使⽤的变量都需要有与定义分离的声明。
在这种情况下,⼀个⽂件含有变量的定义,使⽤该变量的其他⽂件则包含该变量的声明(⽽不是定义)。
如何清晰的区分变量声明和定义extern通知编译器变量在其他地⽅被定义1.extern告诉编译器变量在其他地⽅定义了。
例如:extern int i;//声明,不是定义int i;//声明,也是定义,未初始化带有初始化式的声明必定式定义2.如果声明有初始化式,就被当作定义,即使前⾯加了extern。
大一上学期c语言知识点C语言作为一门较为基础的编程语言,是许多计算机专业的学生必修的课程之一。
在大一上学期,我们主要学习了C语言的一些基本知识点,下面我将对这些知识点进行总结与归纳。
一、C语言简介C语言是一种过程式编程语言,由美国计算机科学家Dennis M. Ritchie在20世纪70年代初开发而成。
它是一种比较接近底层的语言,具有高效性和灵活性,适用于系统级编程和嵌入式开发。
二、变量与数据类型1. 变量:在C语言中,我们需要先声明变量,然后才能使用。
变量可以存储各种类型的数据,如整数、字符、浮点数等。
2. 基本数据类型:C语言提供了几种基本数据类型,包括整型(int)、字符型(char)、浮点型(float)、双精度型(double)等。
3. 运算符:C语言支持各种运算符,如算术运算符(+、-、*、/)、关系运算符(>、<、==、!=)、逻辑运算符(&&、||、!)等。
三、控制语句1. 条件语句:C语言中最常用的条件语句是if-else语句,用于根据条件来执行不同的代码块。
2. 循环语句:C语言提供了几种循环语句,如while循环、do-while循环和for循环,用于重复执行某段代码。
3. 选择语句:C语言中的switch语句用于根据表达式的值进行选择,可以替代多个if-else语句。
四、数组与字符串1. 数组:数组是一种用于存储多个相同类型的数据的数据结构。
在C语言中,我们可以通过下标来访问数组中的元素。
2. 字符串:C语言中字符串实际上是以字符数组的形式存在的,每个字符占据一个字节的内存空间。
字符串常常使用字符指针来处理。
五、函数与指针1. 函数:C语言中的函数可以将一段代码封装起来并重复使用。
函数具有输入参数和返回值,可以用于实现特定功能。
2. 指针:指针是C语言中的重要概念,它保存了变量的内存地址。
通过指针,我们可以直接访问和修改变量的值,还可以动态分配内存空间。
学习C语言的必备知识点C语言是一门广泛应用于软件开发和系统编程的高级编程语言。
学习C语言需要掌握一些必备的知识点,才能更好地理解和应用该语言。
本文将介绍C语言学习的必备知识点,帮助读者系统地学习和掌握C语言。
一、数据类型C语言提供了多种数据类型,包括整型、浮点型、字符型和指针等。
了解不同数据类型的特点和使用方法是学习C语言的基础。
教材中会对这些数据类型进行详细的讲解和示例,并提供相应的练习题供学生练习。
二、变量与常量在C语言中,变量用于存储和表示数据,而常量则是不可改变的数据。
学习C语言需要了解如何声明和定义变量,以及如何使用常量。
这些知识点通常包括变量的命名规则、作用域、声明方式和初始化等。
三、运算符C语言提供了丰富的运算符,用于进行各种数学和逻辑运算。
学习C语言需要熟悉不同类型的运算符,如算术运算符、赋值运算符、比较运算符和逻辑运算符等。
学生需要掌握这些运算符的使用方法和优先级。
四、控制语句控制语句用于控制程序的执行流程,包括条件语句、循环语句和跳转语句等。
学习C语言需要了解不同控制语句的语法和用法,以及它们在程序中的应用场景。
通过掌握控制语句,可以编写出更加灵活和复杂的程序。
五、数组和字符串数组和字符串是C语言中常用的数据结构。
学习C语言需要了解如何声明和使用数组,以及如何进行各种数组操作。
此外,还需要了解如何使用字符串和字符串处理函数,如字符串的拼接、比较和复制等。
这些知识点对于处理文本和数据是非常重要的。
六、函数和指针函数是C语言中的重要组成部分,它封装了一些特定的功能,并可以被多次调用。
学习C语言需要了解如何声明和定义函数,以及函数的参数传递和返回值等。
指针是C语言中的另一个重要概念,它提供了对内存地址的直接访问。
学生需要了解如何声明和使用指针,以及指针和数组、指针和函数之间的关系。
七、文件操作C语言提供了一些文件操作函数,可以对文件进行读写操作。
学习C语言需要了解如何打开和关闭文件,以及如何读写文件的内容。
c类的定义和声明(原创版)目录1.C 语言的基本数据类型2.C 语言的变量和常量3.C 语言的运算符4.C 语言的控制语句5.C 语言的函数6.C 语言的数组和字符串7.C 语言的文件操作正文C 语言是一种高级计算机编程语言,广泛应用于操作系统、嵌入式系统、游戏开发等领域。
C 语言的定义和声明是编写程序的基础,下面我们将详细介绍 C 语言的基本概念。
1.C 语言的基本数据类型包括整型、浮点型、字符型和空类型等。
整型通常表示整数,浮点型表示小数,字符型表示单个字符。
2.在 C 语言中,变量和常量是用来存储数据的。
变量是可变的,常量是不可变的。
在声明变量时,需要指定变量的数据类型,例如:int a; double b; char c; 常量可以用 const 关键字来声明,例如:const int MAX_VALUE = 100;3.C 语言提供了丰富的运算符,包括算术运算符、关系运算符、逻辑运算符、赋值运算符和位运算符等。
运算符的优先级和结合性也需要掌握,例如:a + b 和 a * b 的优先级不同,需要用小括号来明确运算顺序。
4.C 语言的控制语句包括条件语句(if-else)、循环语句(for、while、do-while)和跳转语句(break、continue、goto)。
掌握这些控制语句,可以编写出更加复杂的程序。
5.函数是 C 语言中重要的组织代码的方式,可以实现代码的模块化和重用。
函数的声明和调用需要使用函数原型,例如:int add(int a, intb); int main() { int x = add(10, 20); }6.数组和字符串是 C 语言中常用的数据结构。
数组是一段连续的内存空间,可以存储多个相同类型的数据。
字符串是一段字符数组,通常用字符串常量或字符数组来表示。
7.文件操作是 C 语言中重要的功能之一,可以用来读写数据。
C 语言提供了 fopen、fread、fwrite 等函数来实现文件操作。
C语言的数据类型和变量定义详解C语言是一种广泛应用于计算机科学和编程领域的编程语言。
在C语言中,数据类型和变量定义是非常重要的概念。
本文将详细解释C语言中的数据类型和变量定义。
一、数据类型的概念和分类数据类型是指数据的种类和存储方式。
在C语言中,数据类型分为基本数据类型和派生数据类型两大类。
1. 基本数据类型C语言提供了几种基本数据类型,包括整型、浮点型、字符型和布尔型。
整型数据类型用于存储整数,包括int、short、long和long long等。
这些数据类型的区别在于所占用的存储空间大小和表示范围。
浮点型数据类型用于存储带有小数部分的数值,包括float和double。
float类型占用4个字节,而double类型占用8个字节,所以double类型的精度更高。
字符型数据类型用于存储单个字符,包括char。
在C语言中,字符型数据实际上是用整数来表示的,每个字符对应一个整数值。
布尔型数据类型用于存储真值,包括_Bool。
它只有两个取值,即0和1,分别表示假和真。
2. 派生数据类型派生数据类型是通过基本数据类型定义的,包括数组、指针、结构体和联合体等。
数组是一组相同类型的数据的集合,可以通过下标来访问其中的元素。
数组的定义方式为:数据类型变量名[数组长度]。
指针是用于存储内存地址的变量,通过指针可以间接访问变量的值。
指针的定义方式为:数据类型 *变量名。
结构体是一种自定义的数据类型,可以包含多个不同类型的成员变量。
结构体的定义方式为:struct 结构体名 { 成员变量列表 }。
联合体是一种特殊的结构体,它的所有成员变量共享同一块内存空间。
联合体的定义方式与结构体相似。
二、变量的定义和使用变量是用于存储数据的一种命名空间。
在C语言中,变量的定义方式为:数据类型变量名。
变量名是由字母、数字和下划线组成的字符串,不能以数字开头,且不能与C 语言的关键字重复。
变量名的命名应具有一定的意义,以便于代码的理解和维护。
c语言基础代码C语言基础代码引言:C语言是一种通用的、面向过程的编程语言,具有高效性和灵活性,被广泛应用于开发操作系统、嵌入式系统和各种应用程序。
了解C语言的基础代码对于学习和理解程序设计非常重要。
本文将介绍C语言的基础代码,包括变量和数据类型、运算符、控制语句和函数等内容。
一、变量和数据类型在C语言中,变量是用来存储数据的容器,而数据类型则决定了变量可以存储的数据的范围和格式。
C语言提供了几种基本的数据类型,包括整型、浮点型、字符型和指针型等。
下面是一些基本的变量声明和初始化的代码示例:1. 整型变量声明和初始化:```cint num1; // 声明一个整型变量int num2 = 10; // 声明并初始化一个整型变量,赋值为10```2. 浮点型变量声明和初始化:```cfloat pi = 3.14; // 声明并初始化一个浮点型变量,赋值为3.14double e = 2.71828; // 声明并初始化一个双精度浮点型变量,赋值为2.71828```3. 字符型变量声明和初始化:```cchar ch = 'A'; // 声明并初始化一个字符型变量,赋值为'A'```4. 指针变量声明和初始化:```cint *ptr = NULL; // 声明并初始化一个指向整型变量的指针变量,赋值为NULL(空指针)```二、运算符C语言提供了多种运算符,用于进行算术运算、逻辑运算、比较运算等。
下面是一些常见的运算符的代码示例:1. 算术运算符:```cint num1 = 10, num2 = 5;int sum = num1 + num2; // 加法运算,sum的值为15int diff = num1 - num2; // 减法运算,diff的值为5int product = num1 * num2; // 乘法运算,product的值为50float quotient = (float)num1 / num2; // 除法运算,quotient的值为2.0int remainder = num1 % num2; // 取余运算,remainder的值为0```2. 关系运算符:```cint num1 = 10, num2 = 5;int result1 = num1 > num2; // 大于运算,result1的值为1(真)int result2 = num1 < num2; // 小于运算,result2的值为0(假)int result3 = num1 == num2; // 等于运算,result3的值为0(假)int result4 = num1 != num2; // 不等于运算,result4的值为1(真)```3. 逻辑运算符:```cint num1 = 10, num2 = 5;int result1 = (num1 > num2) && (num1 != num2); // 与运算,result1的值为1(真)int result2 = (num1 < num2) || (num1 != num2); // 或运算,result2的值为1(真)int result3 = !(num1 < num2); // 非运算,result3的值为1(真)```三、控制语句控制语句用于实现程序的流程控制,包括条件语句(if-else语句)和循环语句(for循环、while循环和do-while循环)。
c语言数据声明的概念在C语言中,数据声明是指在程序中告诉编译器某个变量的类型和名称,以便在程序执行时为该变量分配内存空间。
数据声明是C语言中定义变量或标识符的语句。
以下是关于C语言数据声明的详细介绍:语法:数据声明的一般语法如下:ctype identifier;其中,type 表示变量的数据类型,identifier 是变量的名称。
数据类型:在C语言中,数据类型决定了变量存储的内容以及变量支持的操作。
常见的数据类型包括整数类型(如int)、浮点数类型(如float、double)、字符类型(如char)等。
示例:cint age; // 整数类型的变量声明float salary; // 浮点数类型的变量声明char initial; // 字符类型的变量声明初始化:变量的声明可以包括对其进行初始化的值。
初始化是在声明变量的同时给它一个初始值。
示例:cint count = 0; // 声明整数类型的变量并初始化为0 double pi = 3.14159; // 声明双精度浮点数类型的变量并初始化为3.14159 char grade = 'A'; // 声明字符类型的变量并初始化为'A'作用域:变量的声明也涉及到作用域的概念。
在C语言中,变量可以具有不同的作用域,例如局部变量和全局变量。
局部变量在函数内声明,其作用域仅限于该函数。
全局变量在函数外声明,其作用域涵盖整个程序。
示例:cint globalVar; // 全局变量声明void myFunction() { int localVar; // 局部变量声明// ... }总体而言,数据声明是C语言中定义变量的基本操作,它确定了变量的类型、名称和可能的初始值。
通过声明变量,程序员可以在程序中引入数据并为其分配内存空间,从而在程序执行时存储和操作数据。
C语言中的变量与数据类型C语言是一种广泛应用于计算机编程中的高级编程语言。
在C语言中,变量是程序中用于存储临时数据的一种重要概念,而数据类型则用来定义变量的属性和操作。
1. 变量变量是在程序中用来存储数据的一种容器。
在C语言中,变量需要先声明后使用,并且需要指定其数据类型。
变量的声明格式为:数据类型变量名;例如:int num;表示声明了一个名为num的整型变量。
2. 基本数据类型C语言提供了一些基本的数据类型,用来存储不同类型的数据。
- 整型:用来存储整数,包括有符号整数和无符号整数。
常用的整型数据类型有:int、short、long等。
- 浮点型:用来存储带小数的数值,包括单精度浮点数和双精度浮点数。
常用的浮点型数据类型有:float、double等。
- 字符型:用来存储单个字符。
字符型数据类型为char。
- 布尔型:用来表示真或者假。
布尔型数据类型为bool,取值为true或false。
3. 常量常量是指在程序中固定不变的值。
在C语言中,常量可以分为整型常量、浮点型常量、字符常量和字符串常量。
- 整型常量:直接写在代码中的整数。
例如:123、-45等。
- 浮点型常量:包含小数点的数值。
例如:3.14、-0.5等。
- 字符常量:用单引号括起来的单个字符。
例如:'a'、'B'等。
- 字符串常量:用双引号括起来的多个字符。
例如:"Hello World"等。
4. 声明变量与赋值要在C语言中声明变量,需要指定变量的数据类型和变量名。
例如:int age;表示声明了一个名为age的整型变量。
为变量赋值可以使用赋值操作符"="。
例如:age = 20;表示将20赋值给age变量。
5. 类型修饰符C语言还提供了一些类型修饰符,用来修改数据类型的特性。
- signed、unsigned修饰符:用于有符号整型和无符号整型,分别表示有符号和无符号的取值范围。
C语言基础知识数据类型和变量C语言基础知识:数据类型和变量C语言是一种广泛应用于系统开发的编程语言,掌握C语言的基础知识对于程序员来说至关重要。
本文将重点介绍C语言中的数据类型和变量,帮助初学者打下扎实的基础。
1. 数据类型在C语言中,数据类型用于定义变量的类型及其在内存中所占的空间大小。
C语言提供了以下常用的数据类型:1.1 基本数据类型- 整型(int):用于表示整数,可以分为有符号和无符号两种类型。
有符号整型可以表示正数、负数和零,无符号整型只能表示非负数。
- 浮点型(float):用于表示带有小数部分的实数。
C语言提供了两种浮点类型:float和double,其中double的精度更高。
- 字符型(char):用于表示单个字符,可以是字母、数字、标点符号等。
字符型变量在内存中占用一个字节的空间。
1.2 复合数据类型- 数组(array):用于存储一组相同类型的元素,通过索引可以访问数组中的每个元素。
数组的大小在定义时需要指定。
- 结构体(struct):用于将不同类型的变量组合成一个整体。
结构体可以包含多个字段,每个字段可以有不同的数据类型。
- 枚举(enum):用于定义一组命名常量,枚举类型的变量只能取枚举中定义的值。
2. 变量变量是存储数据的内存空间的名称,每个变量都有一个数据类型,用于确定变量在内存中所占的空间大小。
在C语言中,变量的命名规则如下:- 变量名只能由字母、数字和下划线组成,且首字母不能是数字。
- 变量名区分大小写。
- 变量名不能是C语言的关键字。
变量的声明和定义通常需要指定变量的数据类型和名称。
例如,下面是一个定义和初始化整型变量的例子:```cint num; // 声明整型变量numnum = 10; // 初始化num的值为10```除了整型变量,还可以声明和定义其他类型的变量。
3. 常量常量是指在程序中固定不变的值。
与变量不同,常量的值在程序执行过程中无法修改。
本文作者:黄邦勇帅本文是学习C++最基础的内容,因此应对其熟练掌握,本文主要介绍了声明与定义的区别,C++中有关变量及数据类型的描述,其中由浅入深的介绍了复杂声明的分析方法,本文内容由浅入深,内容较为全面。
本文内容完全属于个人见解与参考文现的作者无关,其中难免有误解之处,望指出更正。
声明:禁止抄袭本文,若需要转载本文请注明转载的网址,或者注明转载自“黄邦勇帅”。
主要参考文献:1、C++.Primer.Plus.第五版.中文版[美]Stephen Prata著孙建春韦强译人民邮电出版社2005年5月2、C++.Primer.Plus.第四版.中文版Stanley B.Lippman、Barbara E.Moo著李师贤等译人民邮电出版社2006年3月3、C语言:标准与实现volume 1 作者不详,前言是“姚新颜”写的可能就是作者,出版社不详,2004年8月4、《程序设计语言C》中华人民共和国国家标准GB/T 15272-94 1994年12月7日发布出版社不详5、《C++程序设计原理与实践》[美]Bjarne Stroustrup著王刚刘晓光吴英李涛译机械工业出版社2010年6月6、《C++程序设计语言》特别版[美]Bjarne Stroustrup著裘宗燕译机械工业出版社2010年3月7、《C和指针》第二版[美] Kenneth A.Reek著徐波译人民邮电出版社出版日期不详8、《C陷阱与缺陷》Andrew Koenig 著高巍译王昕审校人民邮电出版社出版日期不详9、《C专家编程》作者、出版社、出版日期不详10、《C语言核心技术》Peter Prinz εTony Crawford著O’Reilly Taiwan公司译机械工业出版社2007年8月11、《ANSI C标准详解》作者、出版社、出版日期不详第3部分声明、定义、变量、数据类型专题关键概念1、对象:指的是某种类型所占据的一片连续的内存单元,注意:对象不仅仅指的是一片连续的内存单元,而且这片内存区域已经指定了某种类型。
2、标识符:标识符就是一个名字,使用标识符主要是与C++中的关键字相区别,本文所讲的名字和标识符都是指的标识符。
一、变量、类型简单理解请参考《C++整型、字符型、浮点型专题》相关内容。
二、变量、对象、实体深度理解1、注意:本文中的对象与类的对象是两个概念,应区别对待。
2、对象:指的是某种类型所占据的一片连续的内存单元,注意:对象不仅仅指的是一片连续的内存单元,而且这片内存区域已经指定了某种类型。
3、变量:变量其实就是命名后的对象,也就是说变量是为指定类型的连续的内存单元(即对象)取的一个名字。
一块连续的内存单元,若我们使用内存的地址编号来访问这块内存单元,这样会让程序很难让人理解,因此就有必要为一块保存特定类型的连续的内存单元(即对象)取一个名字,这个名字就是我们所说的变量。
4、实体:本文中所说的实体就是变量的另一个名字,一般情况下变量指的是像整型,浮点型这些类型的对象,按变量的概念,变量还可以是函数名,指针名,数组名等,为了描述方便,有时会使用实体一词。
5、从以上概念可以看出,变量、对象和实体三者的没有什么本质的区别。
三、类型深度理解1、类型与内存内存中的比特值的含义完全决定于这块内存单元所表示的类型,保存在计算机中的值是一些二进制比特,这些二进制比特对于计算机来讲,它并不知道代表什么意义,只有当我们决定如何解释这些比特时才有意义,比如65或字符’a’在内存中的比特值是相同的,若将比特值解释为int型,则他是一个十进制数,若解释为char型,则是这符a,因此在内存单元中的数据应具有一个类型,当类型确定后就能对其中的数据作出正确的解释了。
2、类型的作用1)、类型决定了可以将什么数据赋给对象(比如整数3可以赋给int型,”dd”可以赋给string型等)2)、类型决定了可以对该对象进行什么样的操作(比如可以对int型的变量或常量进行加、减、乘、除等操作,不能进字符串变量或常量进行加、减、乘、除等操作)。
3)、类型还决定了对象的内存大小、布局和取值范围3、每个名字(或变量,变量就是命名后的对象,因此一个变量就是一个名字)、表达式都应有一个类型,这个类型决定了可以对这个名字进行什么样的操作,因此类型决定了这个名字或表达式的使用方式。
4、不能对变量赋予一个类型错误的值。
5、编译器会记录每个变量的类型,并确认对它进行的操作是否与类型相一致。
四、声明与定义1、声明是一条语句,声明为对象起了一个名字,同时为名字确定了一个类型。
2、声明的作用:1)、C++使用声明语句来告诉编译器一个对象的名字,比如int x;表示x是一块类型为int的内存区域的名字。
2)、C++使用声明语句告诉编译器一个对象是什么类型。
比如语句int x;就能告诉编译器变量x的类型为int型。
一个命名的对象必须有一个类型,有了具体的类型我们才能确定对对象作出什么样的操作,对象能够接收什么样的值等,C++使用声明语句来实现此目的。
3、定义:定义是一个声明,同时定义会为对象分配内存空间,因此定义也是一个声明。
五、声明与定义的区别及注意事项1、C++中的名字(标识符)必须先声明后再使用,也就是说在使用前必须先确定它的类型,以通知编译器这个名字所引用的是什么类型的实体。
2、对同一个名字只能定义一次,因为定义为命名对象(比如变量,函数名等)分配了内存,同一名字的对象只能分配一个内存位置,所以只能定义一次。
3、对同一个名字的声明可以有任意多次。
4、对同一个名字的所有声明必须具有相同的类型。
5、区别声明与定义的方法:就是在程序中对同一个标识符声明多次,若语句不出错,则是声明,若出错,则是定义,比如extern int a; extern int a;程序不会出错,因此是声明,而int a; int a;则会出错,因此是定义。
注:变量的声明与定义详见后文。
5、任何进行了初始化操作的语句都是定义。
6、每个定义都是一个声明,但声明未必是定义。
7、非定义的声明仅仅告诉编译器程序中有这么一个具有指定类型的名字,因此声明不会为对象分配内存(比如为变量分配内存,为函数指定函数体)。
8、对于变量来说,其声明只说明了类型,而定义则会为该变量分配存储空间。
9、对于函数来说,声明也提供了类型(即参数类型和反回类型),而定义才会提供函数体(即{}括起来的部分)。
10、注意:函数体是被作为程序的一部分而被保存在内存中的,因此函数和变量的定义都消耗了内存,而声明则没有。
11、注意:在声明时,在名字后带一对空的小括号程序会认为这是一个函数,而不是对类调用的默认构造函数(详见后文),比如hy g(); 其中hy是一个类类型(即class hy{...}),语句hy g();只是表明是对一个函数的声明,而不会是使用默认构造函数创建一个类类型的对象g。
六、声明的语法形式声明的形式为:[ [存储类区分符] | [类型限定词] ] <类型区分符> 声明符[, 声明符[, 声明符[, ....]];说明:1、方括号”[]”中的内容表示可选项,以短竖线”|”隔开的内容可以只选一项,尖括号<>中的内容是必选项。
2、存储类区分符有:extern , static, auto, register。
其中extern表示外部的,static表示静态的,auto表示自动,register表示寄存器,存储类区分符请参看语句与作用域部分内容,本文不深入讨论。
3、类型限定词有2个:const, volatile。
其中const一般被理解为只读,而volatile则是易变。
4、类型区分符有:基本类型(如int, float, double, unsigned long int等);void类型;枚举、结构或联合类型;用户自定义类型;5、声明符:1)、声明符可以有多个,多个声明符之间使用逗号相隔开。
2)、有5种不同的声明符,即标识符,函数声明符(),数组声明符[],指针声明符*,引用声明符&;根据声明符的不同,我们可以声明不同的对象。
3)、若声明符就是一个标识符,则标识符会被声明为一个变量。
4)、函数声明符():若标识符后跟一对圆括号的情形,圆括号内可能有形参表,则这时标识符将被声明为一个函数,比如int f(float);就表示标识符f是一个反回类型为int带有一个float形参的函数。
5)、数组声明符[]:若标识符后跟一对方括号,方括号内是任选的常量表达式,则这时标识符将被声明为一个数组,比如int a[11]; 表示标识符a是一个int型数组。
6)、指针声明符*:若在标识符的前面有一个星号”*”,在星号和标识符之间可能会有类型限定词,则这时标识符将被声明为一个指针,比如int *p; 表示标识符p是一个int型指针;再如int *const p; float *p; 等。
7)、引用声明符&:若在标识符的前面有一个符号”&”,则这个标识符将被声明为一个引用,比如int &b;表示标识符b被声明一个类型为int的引用。
七、声明的规则和限制1、注意:声明语句后面有一个分号,分号表示此声明语句到此结束。
C++中的语句详见后文2、在一个声明中最多只能有一个存储类区分符,即extern , static, auto, register只能有其中一个。
3、一个标识符必须指定一个类型,且只能指定一种类型,也就是说不能让一个变量即是int型又是float型。
注意:C语言中可以不为标识符指定类型,比如const x;将是一个声明(缺省为int型),但C++必须为标识符指定类型,C++没有缺省的类型。
4、可以使用多个相同或不同的类型限定词(即const和volatile),顺序不关紧要,编译器会忽略相同的多余的限定词。
5、存储类区分符,类型限定词,类型区分符必须在标识符的前面,三者之间的顺序不关紧要。
6、若函数是类中的一个成员时,类型限定词const和volatile可以出现在函数名的后面,注意:类的成员变量不能将const放在变量名的后面,类的内容具体参见相关内容。
7、声明符中的()、[]应放在标识符的后面,*、&、*const应放在标识符的前面,且()与[]优先级相同,()和[]比*和&优先级更高。
8、注意:*可以放在类型限定词const和volatile的前面,但不能放在类型区分符(如int, float等)和存储类区分符(如auto,extern等)的前面。
9、函数的反回值不能是一个函数,但反回值可以是一个函数指针,比如int f()();是非法的,int (*f())()是正确的。
10、函数的反回值不能是一个数组,但反回值可以是一个指向数组的指针,比如int f()[]是错误的,int (*f())[];是正确的。