C语言学习(自用备考版)

学习环境


一、基本语法

1. C 程序主要包括以下部分:

预处理器指令
函数
变量
语句 & 表达式
注释

常用:/* … */ 将会被编译器忽略,这里放置程序的注释内容。它们被称为程序的注释
2. 代码详解

#include <stdio.h>
  /* 预处理器指令,告诉 C 编译器在实际编译之前要包含某文件 */ 
下一行 
下一行 return 0; 终止 main() 函数,并返回值 0。
int main()
/*主函数,程序从这里开始执行*/ 
{
   /* 我的第一个 C 程序 */
   printf("Hello, World! \n");
  /* printf(...) 是 C 中另一个可用的函数,会在屏幕上显示消息*/
   return 0;
}

3. 编译 & 执行 C 程序

(1) 打开一个文本编辑器,添加上述代码。

$ gcc hello.c
$ ./a.out
Hello, World!

请确保您的路径中已包含 gcc 编译器,并确保在包含源文件 hello.c 的目录中运行它。
保存了以hello命名的执行文件

$ gcc -o hello hello.c
$ ./hello
Hello, World!

(2)如果是多个 c 代码的源码文件,编译方法如下:

$ gcc test1.c test2.c -o main.out
$ ./main.out
test1.c 与 test2.c 是两个源代码文件。

3. C 的令牌(Token)

C 程序由各种令牌组成,令牌可以是关键字、标识符、常量、字符串值,或者是一个符号。
printf(“Hello, World! \n”); 这五个令牌分别是:

printf //关键字
(
"Hello, World! \n" //标识符、常量、字符串值
)
;

4. 分号 ;

在 C 程序中,分号是语句结束符。也就是说,每个语句必须以分号结束。它表明一个逻辑实体的结束。

例如,下面是两个不同的语句:
printf("Hello, World! \n");
return 0;

5. 注释

C 语言有两种注释方式:

// 单行注释,这种注释可以单独占一行。
/* 单行注释 */
/* 
 多行注释
 多行注释
 多行注释
 */ 

不能在注释内嵌套注释,注释也不能出现在字符串或字符值中

6. 标识符

C 标识符是用来标识变量、函数,或任何其他用户自定义项目的名称。
一个标识符以字母 A-Z 或 a-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9)

C 标识符内不允许出现标点字符,比如 @、$ 和 %。C 是区分大小写的编程语言。

下面列出几个有效的标识符:
mohd       zara    abc   move_name  a_123
myname50   _temp   j     a23b9      retVal

7. 关键字

下表列出了 C 中的保留字。这些保留字不能作为常量名、变量名或其他标识符名称。

关键字	说明
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	循环语句的循环条件

二、数据结构

1.数据类型

在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式

序号	类型与描述
1	基本数据类型
它们是算术类型,包括整型(int)、字符型(char)、浮点型(float)和双精度浮点型(double)。
2	枚举类型:
它们也是算术类型,被用来定义在程序中只能赋予其一定的离散整数值的变量。
3	void 类型:
类型说明符 void 表示没有值的数据类型,通常用于函数返回值。
4	派生类型:
:包括数组类型、指针类型和结构体类型。

数组类型和结构类型统称为聚合类型函数的类型指的是函数返回值的类型

2.整数类型

下表列出了关于标准整数类型的存储大小和值范围的细节:
在这里插入图片描述
使用 sizeof 运算符,表达式 sizeof(type) 得到对象或类型的存储字节大小

//下面的实例演示了获取 int 类型的大小:
#include <stdio.h>
#include <limits.h>
int main()
{
   printf("int 存储大小 : %lu \n", sizeof(int));
   //%lu 为 32 位无符号整数
   return 0;
}

它会产生下列结果:int 存储大小 : 4

3.浮点类型

下表列出了关于标准浮点类型的存储大小、值范围和精度的细节:
在这里插入图片描述

//下面的实例将输出浮点类型占用的存储空间以及它的范围值:
#include <stdio.h>
#include <float.h>
//头文件 float.h 定义了宏,在程序中可以使用这些值和其他有关实数二进制表示的细节。 
int main()
{
   printf("float 存储最大字节数 : %lu \n", sizeof(float));
   printf("float 最小值: %E\n", FLT_MIN );
   printf("float 最大值: %E\n", FLT_MAX );
   printf("精度值: %d\n", FLT_DIG );
   
   return 0;
}

%E 为以指数形式输出单、双精度实数,详细说明查看 C 库函数 - printf()。

当您在 Linux 上编译并执行上面的程序时,它会产生下列结果:

float 存储最大字节数 : 4
float 最小值: 1.175494E-38
float 最大值: 3.402823E+38
精度值: 6

4.void 类型

void 类型指定没有可用的值。它通常用于以下三种情况下:

序号——类型与描述
1——函数返回为空
C 中有各种函数都不返回值,或者返回空。不返回值的函数的返回类型为空。例如 void exit (int status);
2——函数参数为空
C 中有各种函数不接受任何参数。不带参数的函数可以接受一个 void。例如 int rand(void);
3 指针指向 void
类型为 void * 的指针代表对象的地址,而不是类型。例如,内存分配函数 void *malloc( size_t size ); 返回指向 void 的指针,可以转换为任何数据类型。

5.类型转换

类型转换是将一个数据类型的值转换为另一种数据类型的值。
C 语言中有两种类型转换:

隐式类型转换

隐式类型转换是在表达式中自动发生的,无需进行任何明确的指令或函数调用。它通常是将一种较小的类型自动转换为较大的类型。可能会导致数据精度丢失或数据截断。
例如,将int类型转换为long类型或float类型转换为double类型。

//实例
int i = 10;
float f = 3.14;
double d = i + f; //隐式将int类型转换为double类型
显式类型转换

显式类型转换需要使用强制类型转换运算符,它可以将一个数据类型的值强制转换为另一种数据类型的值。强制类型转换可以使程序员在必要时对数据类型进行更精确的控制,但也可能会导致数据丢失或截断。

实例
double d = 3.14159;
int i = (int)d; // 显式将double类型转换为int类型

学习系列

  • 基本语法
  • 数据类型
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值