网站建设课程毕设,制作网站需要哪些工作,网上做二建题那个网站好,如何制作代码C 修饰符类型
C 允许在 char、int 和 double 数据类型前放置修饰符。
修饰符是用于改变变量类型的行为的关键字#xff0c;它更能满足各种情境的需求。
下面列出了数据类型修饰符#xff1a; signed#xff1a;表示变量可以存储负数。对于整型变量来说#xff0c;signed…C 修饰符类型
C 允许在 char、int 和 double 数据类型前放置修饰符。
修饰符是用于改变变量类型的行为的关键字它更能满足各种情境的需求。
下面列出了数据类型修饰符 signed表示变量可以存储负数。对于整型变量来说signed 可以省略因为整型变量默认为有符号类型。 unsigned表示变量不能存储负数。对于整型变量来说unsigned 可以将变量范围扩大一倍。 short表示变量的范围比 int 更小。short int 可以缩写为 short。 long表示变量的范围比 int 更大。long int 可以缩写为 long。 long long表示变量的范围比 long 更大。C11 中新增的数据类型修饰符。 float表示单精度浮点数。 double表示双精度浮点数。 bool表示布尔类型只有 true 和 false 两个值。 char表示字符类型。 wchar_t表示宽字符类型可以存储 Unicode 字符。
修饰符 signed、unsigned、long 和 short 可应用于整型signed 和 unsigned 可应用于字符型long 可应用于双精度型。
这些修饰符也可以组合使用修饰符 signed 和 unsigned 也可以作为 long 或 short 修饰符的前缀。例如unsigned long int。
C 允许使用速记符号来声明无符号短整数或无符号长整数。您可以不写 int只写单词 unsigned、short 或 longint 是隐含的。例如下面的两个语句都声明了无符号整型变量。
signed int num1 -10; // 定义有符号整型变量 num1初始值为 -10
unsigned int num2 20; // 定义无符号整型变量 num2初始值为 20short int num1 10; // 定义短整型变量 num1初始值为 10
long int num2 100000; // 定义长整型变量 num2初始值为 100000long long int num1 10000000000; // 定义长长整型变量 num1初始值为 10000000000float num1 3.14f; // 定义单精度浮点数变量 num1初始值为 3.14
double num2 2.71828; // 定义双精度浮点数变量 num2初始值为 2.71828bool flag true; // 定义布尔类型变量 flag初始值为 truechar ch1 a; // 定义字符类型变量 ch1初始值为 a
wchar_t ch2 L你; // 定义宽字符类型变量 ch2初始值为 你
为了理解 C 解释有符号整数和无符号整数修饰符之间的差别我们来运行一下下面这个短程序
实例
#include iostream using namespace std; /* * 这个程序演示了有符号整数和无符号整数之间的差别 */ int main() { short int i; // 有符号短整数 short unsigned int j; // 无符号短整数 j 50000; i j; cout i j; return 0; }
当上面的程序运行时会输出下列结果
-15536 50000
上述结果中无符号短整数 50,000 的位模式被解释为有符号短整数 -15,536。
C 中的类型限定符
类型限定符提供了变量的额外信息用于在定义变量或函数时改变它们的默认行为的关键字。
限定符含义constconst 定义常量表示该变量的值不能被修改。。volatile修饰符 volatile 告诉该变量的值可能会被程序以外的因素改变如硬件或其他线程。。restrict由 restrict 修饰的指针是唯一一种访问它所指向的对象的方式。只有 C99 增加了新的类型限定符 restrict。mutable表示类中的成员变量可以在 const 成员函数中被修改。static用于定义静态变量表示该变量的作用域仅限于当前文件或当前函数内不会被其他文件或函数访问。register用于定义寄存器变量表示该变量被频繁使用可以存储在CPU的寄存器中以提高程序的运行效率。
const 实例
const int NUM 10; // 定义常量 NUM其值不可修改
const int* ptr NUM; // 定义指向常量的指针指针所指的值不可修改
int const* ptr2 NUM; // 和上面一行等价
volatile 实例
volatile int num 20; // 定义变量 num其值可能会在未知的时间被改变
mutable 实例
class Example {
public:int get_value() const {return value_; // const 关键字表示该成员函数不会修改对象中的数据成员}void set_value(int value) const {value_ value; // mutable 关键字允许在 const 成员函数中修改成员变量}
private:mutable int value_;
};
static 实例
void example_function() {static int count 0; // static 关键字使变量 count 存储在程序生命周期内都存在count;
}
register 实例
void example_function(register int num) {// register 关键字建议编译器将变量 num 存储在寄存器中// 以提高程序执行速度// 但是实际上是否会存储在寄存器中由编译器决定
}