2025年02月23日 sizeof 是一个关键字,它是一个编译时运算符,用于判断变量或数据类型的字节大小。sizeof 运算符可用于获取类、结构、共用体和其他用户自定义数据类型的大小。 sizeof具有如下特性: sizeof是编译器的内置指示符 sizeof用于计算类型或者变量所占用内存大小 sizeof的值在编译期就已经确定 sizeof用法 sizeof用于类型: sizeof(type); sizeof用于变量: sizeof(var); sizeof var; // 由此可知,sizeof并

C语言 sizeof

2025年02月23日 枚举(enum)是 C 语言中的一种基本数据类型,它可以让数据更简洁,更易读。enum中定义的值是C语言中真正意义上的常量。 枚举类型的使用方法 enum是C语言的一种自定义类型。 enum值是可以根据需要自定义的整型值。 第一个定义的enum值默认为0。 默认情况下的enum值是在前一个定义值的基础上加1. enum类型的变量只能取定义时的离散值。 enum Color { GREEN, // 0 RED = 2, BLUE // 3 }; 枚

C语言 枚举enum

2025年02月23日 C语言中,共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值。共用体提供了一种使用相同的内存位置的有效方式。 C语言中,union语法上与struct相似,union只分配最大成员的空间,所有成员共享这个空间。 #include<stdio.h> struct A { int a; int b; int c; }; union B { int a; int b; int

C语言 联合体union

2025年02月23日 C语言中,数组允许定义可存储相同类型数据项的变量,结构是 C 编程中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项,因此C语言中的struct可以看作变量的集合。 struct的问题:空结构体占用多大的内存?sizeof(struct TS)=? struct TS { }; 示例:空结构体的大小 #include <stdio.h> struct TS { }; int main() { struct TS t1; struct TS t2

C语言 结构体struct

2025年02月23日 C语言中,volatile告诉编译器必须每次去内存中取变量值,强制编译器减少优化。volatile可理解为编译器警告指示字。 volatile主要修饰可能被多个线程访问的变量。 volatile也可以修饰可能被未知因素更改的变量。 volatile强制编译器减少优化,必须每次从内存中读取值。 int obj = 10; int a = 0; int b = 0; a = obj; sleep(100); b = obj; 上面的例子中,编译器在编译的时候发现obj没有被当成左值使用,因

C语言 volatile

2025年02月23日 const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的健壮性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。 const只读变量 const修饰的变量是只读的,本质还是变量 const修饰的局部变量在栈上分配空间 const修饰的全局变量在只读存储区分配空间 const只在编译期有用,在运行期无用 const修饰全局变量 在现代C语言编译器中,修改const全局变量将导致程序崩溃。 在标准C语

C语言 const

2025年02月23日 C语言中void常用来修饰函数的返回值和参数: 如果函数没有返回值,那么应该将其声明为void 如果函数没有参数,应该将其声明为void #include<stdio.h> f(){} int main(){ int i = f(1,2,3);//能编译通过,在C语言,对函数的定义可以不写参数和返回值,这种情况函数默认返回的是int,可以接受任意参数 return 0; } 不存在void变量 在C语言中,没有定义void究竟是多大内存的别名,也就是没有voi

C语言 void

2025年02月23日 C 语言中的 goto 语句允许把控制无条件转移到同一函数内的被标记的语句处。 C语言goto语句语法 C 语言中 goto 语句的语法: goto label; .. . label: statement; 在这里,label 可以是任何除 C 关键字以外的纯文本,它可以设置在 C 程序中 goto 语句的前面或者后面。 C语言goto语句实例 #include <stdio.h> int main () { /* 局部变量定义 */ int a = 1

C语言 goto语句

2025年02月23日 C语言循环语句分为for循环和while循环语句,本文介绍这两种循环语句。 循环语句的基本工作方式: 通过条件表达式判断是否执行循环体 条件表达式遵循if语句表达式原则 do, while, for的区别: do语句先执行后判断,循环体至少执行一次 while语句先判断后执行,循环体可能不执行 for语句先判断后执行,相比while更简洁 while循环 while循环我们从do...while语句和while语句来讲解。 do...while语句 do...while语句的循

C语言 循环语句

2025年02月23日 C语言中分支语句包括if语句和switch语句,本文对这两种语句进行讲解。 if语句 if语句用于根据条件选择执行逻辑,else不能独立存在且总是与它最近的if相匹配,else语句后可以接其他if语句。 if语句示例 if(condition) { //statement 1 } else { //statement 2 } if语句零值比较 if语句中零值比较的注意点 bool 型变量应该直接出现于条件中,不要进行比较 bool b = TRUE; if(b)

C语言 分支语句

2025年02月23日 C语言中的变量可以有自己的属性,在定义变量的时候可以加上属性关键字,常见的属性关键字有: auto register static extern 属性关键字指明变量的特殊意义。 属性关键字语法: property type var_name; 属性关键字示例: int main(){ auto char i; register int j; static long k; extern double m; return 0; } auto关键

C语言 变量属性关键字

2025年02月22日 C语言浮点数在内存的存储方式为:符号位、指数、尾数 float与double类型的数据在计算机内部的表示法是相同的,但由于所占存储空间不同,所以能表示的数值范围和精度也不同。 浮点数的转换 将浮点数转换成二进制 用科学计数法表示二进制浮点数 计算指数偏移后的值 示例,对于指数6,偏移后的值如下: float:127+6=133 double:1023+6=1029 浮点数转换示例 下面的例子为实数8.25在内存中的float表示 浮点数精度问题

C语言 浮点数

2025年02月22日 计算机中的符号位 数据类型的最高位用于标识数据的符号 最高位为1,表明这个数为负数 最高位为0,表明这个数为正数 int sign = 0; char i = -5; short j = 5; int k = -1; sign = (i & 0x80);// sign不等于0 sign = (j & 0x8000);// sign等于0 sign = (k & 0x80000000);// sign不等于0 有符号数的表示法 在计算机内部用补码表示有符号数 正数

C语言 无符号与有符号

2025年02月22日 存储类定义 C 程序中变量/函数的范围(可见性)和生命周期。这些说明符放置在它们所修饰的类型之前。下面列出 C 程序中可用的存储类: auto register static extern auto 存储类 auto 存储类是所有局部变量默认的存储类。 { int mount; auto int month; } 上面的实例定义了两个带有相同存储类的变量,auto 只能用在函数内,即 auto 只能修饰局部变量。 register 存储类 register 存储类用于

C语言 存储类

2025年02月22日 常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量。 常量可以是任何的基本数据类型,比如整数常量、浮点常量、字符常量,或字符串字面值,也有枚举常量。 常量就像是常规的变量,只不过常量的值在定义后不能进行修改。 整数常量 整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,不带前缀则默认表示十进制。 整数常量也可以带一个后缀,后缀是 U 和 L 的组合,U 表示无符号整数(unsigned),L 表示长整数(long)。

C语言 常量

最新内容