Note

C语言入门_1

C语言入门_1
2022年07月31日 Sunday · 8 min read
编程语言

C语言

C程序结构主要包括:

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

以输出 Hello World! 为例

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

C语言常见关键字

关键字 说明
auto 声明自动变量
break 跳出当前循环
case 开关语句分支
char 声明字符型变量或函数返回值类型
const 定义常量,如果一个变量被 const 修饰,那么它的值就不能再被改变
continue 结束当前循环,开始下一轮循环
default 开关语句中的"其它"分支
do 循环语句的循环体
double 声明双精度浮点型变量或函数返回值类型
else 条件语句否定分支(与 if 连用)
enum 声明枚举类型
extern 声明变量或函数是在其它文件或本文件的其他位置定义
float 声明浮点型变量或函数返回值类型
for 一种循环语句
goto 无条件跳转语句
if 条件语句
int 声明整型变量或函数
long 声明长整型变量或函数返回值类型
return 子程序返回语句(可以带参数,也可不带参数)
short 声明短整型变量或函数
signed 声明有符号类型变量或函数
sizeof 计算数据类型或变量长度(即所占字节数)
static 声明静态变量
struct 声明结构体类型
switch 用于开关语句
typedef 用以给数据类型取别名
unsigned 声明无符号类型变量或函数
union 声明共用体类型
void 声明函数无返回值或无参数,声明无类型指针
volatile 说明变量在程序执行中可被隐含地改变
while 循环语句的循环条件

C 基本框架

C 程序由是关键字、标识符、常量、字符串值、注释,或者是一个符号所组成。例如,下面的 C 语句:

#include<stdio.h>
int main()
{
    return 0;
}

分号 ;

  • 在 C 程序中,具有严格的语法要求,分号是语句结束符。也就是说,每个语句必须以分号结束。它表明一个逻辑实体的结束。
  • 下面表示两个不同的语句。
printf("Hello, World! \n");
return 0;

注释

C 语言有两种注释方式:

// 单行注释

//开始的单行注释,这种注释单独占一行。

/* 单行注释 */
/* 
 多行注释
 多行注释
 多行注释
 */

/* */ 这种格式的注释可以单行或多行了,而**//**只能单行。注释内部不能嵌套注释!

标识符

C 标识符是用来标识变量、函数,或任何其他用户自定义项目的名称。

  • 一个标识符以字母 A-Z 或 a-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9)。

  • C 标识符内不允许出现标点字符,比如 @、$ 和 %。C 是区分大小写的编程语言。因此,在 C 语言中,Manpowermanpower 是两个不同的标识符。

**关键字不能做标识符!!! **

C语言中的空格

只包含空格的行,被称为空白行,可能带有注释,C 编译器会完全忽略它。

在 C 中,空格用于描述空白符、制表符(Tabj键)、换行符和注释。空格分隔语句的各个部分,让编译器能识别语句中的某个元素(比如 int)在哪里结束,下一个元素在哪里开始。因此,在下面的语句中:

int age;

在这里,int 和 age 之间必须至少有一个空格字符(通常是一个空白符),这样编译器才能够区分它们。另一方面,在下面的语句中:

fruit = apples + oranges;   // 获取水果的总数

fruit 和 =,或者 = 和 apples 之间的空格字符不是必需的,但是为了增强可读性,是可以根据需要适当增加一些空格。

C 数据类型

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

C 中的类型可分为以下几种:

序号 类型与描述
1 基本类型: 它们是算术类型,包括两种类型:整数类型和浮点类型。
2 枚举类型: 它们也是算术类型,被用来定义在程序中只能赋予其一定的离散整数值的变量。
3 void 类型: 类型说明符 void 表明没有可用的值。
4 派生类型: 它们包括:指针类型、数组类型、结构类型、共用体类型和函数类型。

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

整数类型

下表列出了关于标准整数类型的存储大小和值范围的细节:

类型 存储大小 值范围
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 的指针,可以转换为任何数据类型。

常用基本数据类型占用空间(以64位机器为例)

  • char : 1个字节
  • int :4个字节
  • float:4个字节
  • double:8个字节

基本类型书写

整数

  • a,默认为10进制 ,10 ,20。

  • b,以0开头为8进制,045,021。

  • c.,以0b开头为2进制,0b11101101。

  • d,以0x开头为16进制,0x21458adf。

小数

单精度常量(float):2.3f 。

双精度常量(double):2.3,默认为双精度。

字符型常量

用英文单引号括起来,只保存一个字符'a'、'b' 、'*' ,还有转义字符 '\n' 、'\t'。

字符串常量

用英文的双引号引起来 可以保存多个字符:"abc"。

查看自己电脑上数据类型大小 可以使用sizeof运算符

#include <stdio.h>
int main()
{
    printf("int 存储大小 : %lu \n", sizeof(int));
    printf("float 存储大小 : %lu \n", sizeof(float));
    printf("char 存储大小 : %lu \n", sizeof(char));
    printf("double 存储大小 : %lu \n", sizeof(double));
    return 0;
}
vkMQh9.png