导图社区 C语言【一】
**C语言是一种较早的计算机程序设计语言,广泛应用于底层开发和系统软件编写**。C语言诞生于1972年,由美国贝尔实验室的丹尼斯·里奇(Dennis M. Ritchie)设计[^1^]。它最初是为了重新编写UNIX操作系统而创建的,继承了B语言的概念,并加入了数据类型等特性[^2^]。C语言具有简洁紧凑、运算符丰富、数据类型多样等特点,这使得它在编程界广受欢迎[^4^]。它是一种结构化语言,支持模块化的程序设计,便于调试和维护[^3^]。同时,C语言能够在多种计算机平台上编译,具备良好的跨平台特性,这使得其不仅适用于系统软件的开发,还适用于各种应用程序的编写[^1^][^5^]。总的来说,C语言因其高效和灵活的特点,在编程语言中占据了重要地位,成为了学习计算机编程的重要基础语言。
编辑于2024-07-20 23:10:21大一新生的注意事项简洁而关键。首先,合理规划课程和时间,确保充足的学习与复习时间。其次,熟悉学校资源如图书馆、学习中心,充分利用这些设施。参与课外活动和社团,培养兴趣并扩展社交圈。建立良好的生活习惯,包括健康饮食和适量运动。最后,保持开放心态,积极适应大学生活,勇于尝试新事物。简而言之,大一是需要你探索自我、发展个人能力,并为未来职业生涯打下基础的关键时期。
C语言是一种通用、高效的编程语言,由丹尼斯·里奇于1972年开发。它结合了高级语言的易读性和低级语言的硬件操作能力,广泛应用于系统编程。C语言提供了强大的移植性,可以在多种计算机平台上运行。其简洁紧凑的语法结构、丰富的运算符和多样的数据类型使得C语言在编写系统软件如UNIX操作系统时显得尤为适用。C语言的高效性和灵活性使其成为开发者的首选工具之一。
**C语言是一种较早的计算机程序设计语言,广泛应用于底层开发和系统软件编写**。C语言诞生于1972年,由美国贝尔实验室的丹尼斯·里奇(Dennis M. Ritchie)设计[^1^]。它最初是为了重新编写UNIX操作系统而创建的,继承了B语言的概念,并加入了数据类型等特性[^2^]。C语言具有简洁紧凑、运算符丰富、数据类型多样等特点,这使得它在编程界广受欢迎[^4^]。它是一种结构化语言,支持模块化的程序设计,便于调试和维护[^3^]。同时,C语言能够在多种计算机平台上编译,具备良好的跨平台特性,这使得其不仅适用于系统软件的开发,还适用于各种应用程序的编写[^1^][^5^]。总的来说,C语言因其高效和灵活的特点,在编程语言中占据了重要地位,成为了学习计算机编程的重要基础语言。
社区模板帮助中心,点此进入>>
大一新生的注意事项简洁而关键。首先,合理规划课程和时间,确保充足的学习与复习时间。其次,熟悉学校资源如图书馆、学习中心,充分利用这些设施。参与课外活动和社团,培养兴趣并扩展社交圈。建立良好的生活习惯,包括健康饮食和适量运动。最后,保持开放心态,积极适应大学生活,勇于尝试新事物。简而言之,大一是需要你探索自我、发展个人能力,并为未来职业生涯打下基础的关键时期。
C语言是一种通用、高效的编程语言,由丹尼斯·里奇于1972年开发。它结合了高级语言的易读性和低级语言的硬件操作能力,广泛应用于系统编程。C语言提供了强大的移植性,可以在多种计算机平台上运行。其简洁紧凑的语法结构、丰富的运算符和多样的数据类型使得C语言在编写系统软件如UNIX操作系统时显得尤为适用。C语言的高效性和灵活性使其成为开发者的首选工具之一。
**C语言是一种较早的计算机程序设计语言,广泛应用于底层开发和系统软件编写**。C语言诞生于1972年,由美国贝尔实验室的丹尼斯·里奇(Dennis M. Ritchie)设计[^1^]。它最初是为了重新编写UNIX操作系统而创建的,继承了B语言的概念,并加入了数据类型等特性[^2^]。C语言具有简洁紧凑、运算符丰富、数据类型多样等特点,这使得它在编程界广受欢迎[^4^]。它是一种结构化语言,支持模块化的程序设计,便于调试和维护[^3^]。同时,C语言能够在多种计算机平台上编译,具备良好的跨平台特性,这使得其不仅适用于系统软件的开发,还适用于各种应用程序的编写[^1^][^5^]。总的来说,C语言因其高效和灵活的特点,在编程语言中占据了重要地位,成为了学习计算机编程的重要基础语言。
C语言【一】
格式化输出
转换说明符 含义 d,i 插入值类型为有符号整型,转换为十进制形式 o,u,x,X 插入值类型为无符号整型,转换为八机制、十进制和十六进制形式。x表示以小写字母a-f显示16进制数,X表示以A-F显示十六进制数。 f 插入值类型为double,转换为十进制形式,小数点放置于正确位置。默认小数点后显示6个数字。 e,E 插入值类型为double,转换为科学计数法标识。默认小数点后保留6位。选择e,将e放在指数前面,如果选择E,则将E放在指数前 g,G 插入值类型为double, g将插入值转换为f形式或e形式,G将插入值转换为f形式或E形式。在数值的指数部分小于-4或不小于精度值时,选择e或E形式. 不显示尾部的0,小数点仅在后面跟有数字时才显示。 c 插入值类型为无符号字符,输出字符形式 s 插入值类型为字符串。当达到精度或遇到空字符停止写操作 p 插入值类型为指针,转换为可显示格式的void*型值 n 输入值类型为int型指针,用于存储到本次调用到目前位置输出的字符个数 % 输出字符%
关键字
auto 声明自动变量 break 跳出当前循环 case 开关语句分支 char 声明字符型变量或返回值类型 const 定义常量,如果一个变量被 const 修饰,那么它的值就不能再被改变 continue 结束当前循环,开始下一轮循环 default 开关语句中的"其它"分支 do 循环语句的循环体 double 声明双精度浮点型变量或返回值类型 else 条件语句否定分支(与 if 连用) enum 声明枚举类型 extern 声明变量或是在其它文件或本文件的其他位置定义 float 声明浮点型变量或返回值类型 for 一种循环语句 goto 无条件跳转语句 if 条件语句 int 声明整型变量或 long 声明长整型变量或返回值类型 register 声明寄存器变量 return 子程序返回语句(可以带参数,也可不带参数) short 声明短整型变量或 signed 声明有符号类型变量或 sizeof 计算数据类型或变量长度(即所占字节数) static 声明静态变量 struct 声明结构体类型 switch 用于开关语句 typedef 用以给数据类型取别名 unsigned 声明无符号类型变量或 union 声明共用体类型 void 声明无返回值或无参数,声明无类型指针 volatile 说明变量在程序执行中可被隐含地改变 while 循环语句的循环条件
C99 新增关键字 _Bool _Complex _Imaginary inline restrict C11 新增关键字 _Alignas _Alignof _Atomic _Generic _Noreturn _Static_assert _Thread_local
常量
整数常量
85 /* 十进制 */ 0213 /* 八进制 */ 0x4b /* 十六进制 */ 30 /* 整数 */ 30u /* 无符号整数 */ 30l /* 长整数 */ 30ul /* 无符号长整数 */
浮点常量
3.14159 /* 合法的 */ 314159E-5L /* 合法的 */
字符常量
转义序列 转义序列 含义 \\ \ 字符 \' ' 字符 \" " 字符 \? ? 字符 \a 警报铃声 \b 退格键 \f 换页符 \n 换行符 \r 回车 \t 水平制表符 \v 垂直制表符 \ooo 一到三位的八进制数 \xhh . . . 一个或多个数字的十六进制数
字符串常量
定义常量
使用 #define 预处理器。 使用 const 关键字。
变量
类型 描述 char 通常是一个字节(八位)。这是一个整数类型。 int 对机器而言,整数的最自然的大小。 float 单精度浮点值。单精度是这样的格式,1位符号,8位指数,23位小数。  double 双精度浮点值。双精度是1位符号,11位指数,52位小数。  void 表示类型的缺失。
数据类型
整数类型 下表列出了关于标准整数类型的存储大小和值范围的细节: 类型 存储大小 值范围 char 1 字节 -128 到 127 或 0 到 255 unsigned char 1 字节 0 到 255 signed char 1 字节 -128 到 127 int 2 或 4 字节 -32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647 unsigned int 2 或 4 字节 0 到 65,535 或 0 到 4,294,967,295 short 2 字节 -32,768 到 32,767 unsigned short 2 字节 0 到 65,535 long 4 字节 -2,147,483,648 到 2,147,483,647 unsigned long 4 字节 0 到 4,294,967,295
浮点类型 下表列出了关于标准浮点类型的存储大小、值范围和精度的细节: 类型 存储大小 值范围 精度 float 4 字节 1.2E-38 到 3.4E+38 6 位小数 double 8 字节 2.3E-308 到 1.7E+308 15 位小数 long double 16 字节 3.4E-4932 到 1.1E+4932 19 位小数
void 类型 void 类型指定没有可用的值。它通常用于以下三种情况下: 序号 类型与描述 1 返回为空 C 中有各种都不返回值,或者您可以说它们返回空。不返回值的的返回类型为空。例如 void exit (int status); 2 参数为空 C 中有各种不接受任何参数。不带参数的可以接受一个 void。例如 int rand(void); 3 指针指向 void 类型为 void * 的指针代表对象的地址,而不是类型。例如,内存分配 void *malloc( size_t size ); 返回指向 void 的指针,可以转换为任何数据类型。
C 存储类
auto:默认
register
register 存储类用于定义存储在寄存器中而不是 RAM 中的局部变量
static
static 存储类指示编译器在程序的生命周期内保持局部变量的存在
extern
extern 存储类用于提供一个全局变量的引用,全局变量对所有的程序文件都是可见的。
运算符
算术运算符
运算符 描述 实例 + 把两个操作数相加 A + B 将得到 30 - 从第一个操作数中减去第二个操作数 A - B 将得到 -10 * 把两个操作数相乘 A * B 将得到 200 / 分子除以分母 B / A 将得到 2 % 取模运算符,整除后的余数 B % A 将得到 0 ++ 自增运算符,整数值增加 1 A++ 将得到 11 -- 自减运算符,整数值减少 1 A-- 将得到 9
关系运算符
运算符 描述 实例 == 检查两个操作数的值是否相等,如果相等则条件为真。 (A == B) 为假。 != 检查两个操作数的值是否相等,如果不相等则条件为真。 (A != B) 为真。 > 检查左操作数的值是否大于右操作数的值,如果是则条件为真。 (A > B) 为假。 < 检查左操作数的值是否小于右操作数的值,如果是则条件为真。 (A < B) 为真。 >= 检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 (A >= B) 为假。 <= 检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 (A <= B) 为真。
逻辑运算符
运算符 描述 实例 && 称为逻辑与运算符。如果两个操作数都非零,则条件为真。 (A && B) 为假。 || 称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 (A || B) 为真。 ! 称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。 !(A && B) 为真。
位运算符
假设如果 A = 60,且 B = 13,现在以二进制格式表示,它们如下所示: A = 0011 1100 B = 0000 1101 ----------------- A&B = 0000 1100 A|B = 0011 1101 A^B = 0011 0001 ~A = 1100 0011 下表显示了 C 语言支持的位运算符。假设变量 A 的值为 60,变量 B 的值为 13,则: 运算符 描述 实例 & 按位与操作,按二进制位进行"与"运算。运算规则: 0&0=0; 0&1=0; 1&0=0; 1&1=1; (A & B) 将得到 12,即为 0000 1100 | 按位或运算符,按二进制位进行"或"运算。运算规则: 0|0=0; 0|1=1; 1|0=1; 1|1=1; (A | B) 将得到 61,即为 0011 1101 ^ 异或运算符,按二进制位进行"异或"运算。运算规则: 0^0=0; 0^1=1; 1^0=1; 1^1=0; (A ^ B) 将得到 49,即为 0011 0001 ~ 取反运算符,按二进制位进行"取反"运算。运算规则: ~1=0; ~0=1; (~A ) 将得到 -61,即为 1100 0011,一个有符号二进制数的补码形式。 << 二进制左移运算符。将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。 A << 2 将得到 240,即为 1111 0000 >> 二进制右移运算符。将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。
赋值运算符
运算符 描述 类别 运算符 结合性 后缀 () [] -> . ++ - - 从左到右 一元 + - ! ~ ++ - - (type)* & sizeof 从右到左 乘除 * / % 从左到右 加减 + - 从左到右 移位 << >> 从左到右 关系 < <= > >= 从左到右 相等 == != 从左到右 位与 AND & 从左到右 位异或 XOR ^ 从左到右 位或 OR | 从左到右 逻辑与 AND && 从左到右 逻辑或 OR || 从左到右 条件 ?: 从右到左 赋值 = += -= *= /= %=>>= <<= &= ^= |= 从右到左 逗号 , 从左到右
杂项运算符
运算符 描述 实例 sizeof() 返回变量的大小。 sizeof(a) 将返回 4,其中 a 是整数。 & 返回变量的地址。 &a; 将给出变量的实际地址。 * 指向一个变量。 *a; 将指向一个变量。 ? : 条件表达式 如果条件为真 ? 则值为 X : 否则值为 Y
优先级
类别 运算符 结合性 后缀 () [] -> . ++ - - 从左到右 一元 + - ! ~ ++ - - (type)* & sizeof 从右到左 乘除 * / % 从左到右 加减 + - 从左到右 移位 << >> 从左到右 关系 < <= > >= 从左到右 相等 == != 从左到右 位与 AND & 从左到右 位异或 XOR ^ 从左到右 位或 OR | 从左到右 逻辑与 AND && 从左到右 逻辑或 OR || 从左到右 条件 ?: 从右到左 赋值 = += -= *= /= %=>>= <<= &= ^= |= 从右到左 逗号 , 从左到右
语法
C 判断
语句 描述 if 语句 一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。 if...else 语句 一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为假时执行。 嵌套 if 语句 您可以在一个 if 或 else if 语句内使用另一个 if 或 else if 语句。 switch 语句 一个 switch 语句允许测试一个变量等于多个值时的情况。 嵌套 switch 语句 您可以在一个 switch 语句内使用另一个 switch 语句。
C 循环
循环类型 C 语言提供了以下几种循环类型。点击链接查看每个类型的细节。 循环类型 描述 while 循环 当给定条件为真时,重复语句或语句组。它会在执行循环主体之前测试条件。 for 循环 多次执行一个语句序列,简化管理循环变量的代码。 do...while 循环 除了它是在循环主体结尾测试条件外,其他与 while 语句类似。 嵌套循环 您可以在 while、for 或 do..while 循环内使用一个或多个循环。
循环控制语句 循环控制语句改变你代码的执行顺序。通过它你可以实现代码的跳转。 C 提供了下列的循环控制语句。点击链接查看每个语句的细节。 控制语句 描述 break 语句 终止循环或 switch 语句,程序流将继续执行紧接着循环或 switch 的下一条语句。 continue 语句 告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代。 goto 语句 将控制转移到被标记的语句。但是不建议在程序中使用 goto 语句。
无限循环:for( ; ; )
C 函数
定义
return_type function_name( parameter list ) { body of the function }
函数声明
return_type function_name( parameter list );
调用函数
函数参数
调用类型 描述 传值调用 该方法把参数的实际值复制给函数的形式参数。在这种情况下,修改函数内的形式参数不会影响实际参数。 引用调用 通过指针传递方式,形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作。
C 作用域规则
在函数或块内部的局部变量 在所有函数外部的全局变量 在形式参数的函数参数定义中
C 数组
声明数组 在 C 中要声明一个数组,需要指定元素的类型和元素的数量,如下所示: type arrayName [ arraySize ];
初始化数组 在 C 中,您可以逐个初始化数组,也可以使用一个初始化语句,如下所示: double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};
访问数组元素 数组元素可以通过数组名称加索引进行访问。元素的索引是放在方括号内,跟在数组名称的后边。例如: double salary = balance[9];
C 中数组详解
多维数组
传递数组给函数
从函数返回数组
C enum(枚举)
enum DAY { MON=1, TUE, WED, THU, FRI, SAT, SUN };