手机自适应网站建设,昆山哪里做网站好,成都手机微信网站建设报价,网站证书打印格式不正确C 变量作用域
作用域是程序的一个区域#xff0c;一般来说有三个地方可以声明变量#xff1a;
在函数或一个代码块内部声明的变量#xff0c;称为局部变量。在函数参数的定义中声明的变量#xff0c;称为形式参数。在所有函数外部声明的变量#xff0c;称为全局变量。
我…C 变量作用域
作用域是程序的一个区域一般来说有三个地方可以声明变量
在函数或一个代码块内部声明的变量称为局部变量。在函数参数的定义中声明的变量称为形式参数。在所有函数外部声明的变量称为全局变量。
我们将在后续的章节中学习什么是函数和参数。本章我们先来讲解声明是局部变量和全局变量。
局部变量
在函数或一个代码块内部声明的变量称为局部变量。它们只能被函数内部或者代码块内部的语句使用。下面的实例使用了局部变量 #include iostream
using namespace std; int main ()
{
// 局部变量声明 int a, b; int c; // 实际初始化 a 10; b 20; c a b; cout c; return 0;
}
尝试一下
全局变量
在所有函数外部定义的变量通常是在程序的头部称为全局变量。全局变量的值在程序的整个生命周期内都是有效的。
全局变量可以被任何函数访问。也就是说全局变量一旦声明在整个程序中都是可用的。下面的实例使用了全局变量和局部变量
#include iostream
using namespace std;// 全局变量声明
int g;int main ()
{// 局部变量声明int a, b;// 实际初始化a 10;b 20;g a b;cout g;return 0;}
尝试一下
在程序中局部变量和全局变量的名称可以相同但是在函数内局部变量的值会覆盖全局变量的值。下面是一个实例
#include iostream
using namespace std;// 全局变量声明
int g 20;int main ()
{// 局部变量声明int g 10;cout g;return 0;
}
尝试一下
当上面的代码被编译和执行时它会产生下列结果
10初始化局部变量和全局变量
当局部变量被定义时系统不会对其初始化您必须自行对其初始化。定义全局变量时系统会自动初始化为下列值
数据类型初始化默认值int0char\0float0double0pointerNULL
正确地初始化变量是一个良好的编程习惯否则有时候程序可能会产生意想不到的结果。
C 常量
常量是固定值在程序执行期间不会改变。这些固定的值又叫做字面量。
常量可以是任何的基本数据类型可分为整型数字、浮点数字、字符、字符串和布尔值。
常量就像是常规的变量只不过常量的值在定义后不能进行修改。
整数常量
整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数0x 或 0X 表示十六进制0 表示八进制不带前缀则默认表示十进制。
整数常量也可以带一个后缀后缀是 U 和 L 的组合U 表示无符号整数unsignedL 表示长整数long。后缀可以是大写也可以是小写U 和 L 的顺序任意。
下面列举几个整数常量的实例
212 // 合法的
215u // 合法的
0xFeeL // 合法的
078 // 非法的8 不是八进制的数字
032UU // 非法的不能重复后缀以下是各种类型的整数常量的实例
85 // 十进制
0213 // 八进制
0x4b // 十六进制
30 // 整数
30u // 无符号整数
30l // 长整数
30ul // 无符号长整数浮点常量
浮点常量由整数部分、小数点、小数部分和指数部分组成。您可以使用小数形式或者指数形式来表示浮点常量。
当使用小数形式表示时必须包含小数点、指数或同时包含两者。当使用指数形式表示时必须包含整数部分、小数部分或同时包含两者。带符号的指数是用 e 或 E 引入的。
下面列举几个浮点常量的实例
3.14159 // 合法的
314159E-5L // 合法的
510E // 非法的不完整的指数
210f // 非法的没有小数或指数
.e55 // 非法的缺少整数或分数布尔常量
布尔常量共有两个它们都是标准的 C 关键字
true 值代表真。false 值代表假。
我们不应把 true 的值看成 1把 false 的值看成 0。
字符常量
字符常量是括在单引号中。如果常量以 L仅当大写时开头则表示它是一个宽字符常量例如 Lx此时它必须存储在 wchar_t 类型的变量中。否则它就是一个窄字符常量例如 x此时它可以存储在 char 类型的简单变量中。
字符常量可以是一个普通的字符例如 x、一个转义序列例如 \t或一个通用的字符例如 \u02C0。
在 C 中有一些特定的字符当它们前面有反斜杠时它们就具有特殊的含义被用来表示如换行符\n或制表符\t等。下表列出了一些这样的转义序列码
转义序列含义\\\ 字符\ 字符\ 字符\?? 字符\a警报铃声\b退格键\f换页符\n换行符\r回车\t水平制表符\v垂直制表符\ooo一到三位的八进制数\xhh . . .一个或多个数字的十六进制数
下面的实例显示了一些转义序列字符
#include iostream
using namespace std;int main()
{cout Hello\tWorld\n\n;return 0;
} 当上面的代码被编译和执行时它会产生下列结果
Hello World字符串常量
字符串字面值或常量是括在双引号 中的。一个字符串包含类似于字符常量的字符普通的字符、转义序列和通用的字符。
您可以使用空格做分隔符把一个很长的字符串常量进行分行。
下面的实例显示了一些字符串常量。下面这三种形式所显示的字符串是相同的。
hello, dearhello, \dearhello, d ear
定义常量
在 C 中有两种简单的定义常量的方式
使用 #define 预处理器。使用 const 关键字。
#define 预处理器
下面是使用 #define 预处理器定义常量的形式
#define identifier value具体请看下面的实例
#include iostream
using namespace std;#define LENGTH 10
#define WIDTH 5
#define NEWLINE \nint main()
{int area; area LENGTH * WIDTH;cout area;cout NEWLINE;return 0;
}
尝试一下 当上面的代码被编译和执行时它会产生下列结果
50const 关键字
您可以使用 const 前缀声明指定类型的常量如下所示
const type variable value;具体请看下面的实例
#include iostream
using namespace std;int main()
{const int LENGTH 10;const int WIDTH 5;const char NEWLINE \n;int area; area LENGTH * WIDTH;cout area;cout NEWLINE;return 0;
}
尝试一下 当上面的代码被编译和执行时它会产生下列结果
50请注意把常量定义为大写字母形式是一个很好的编程实践。