序(一些闲话)

#include <stdio.h> 是一个预处理命令,它告诉编译器在编译时要包含标准输入输出库。 函数是用来执行特定任务的一段代码,可以重复使用。main 函数是程序的入口点,其中包含了打印 “Hello, world!” 这一操作。
#include <stdio.h> //头文件使我们可以使用C语言库本身就已经提供给我们的函数
int main(){//main函数是程序的入口
//一个工程中main函数有且仅有一个
printf("Hello, world!\n");//printf()是输出函数,'\n'是换行的意思
return 0;
}1. 其中主函数main是程序的唯一入口点。它的类型为int,表明它将返回一个整数作为程序的退出状态码。main一个工程中有且只可以有一个 2. printf()是一个用于格式化输出的函数,它的功能是在屏幕上输出指定的信息。 3. \n是转义字符中的换行符,用于在输出中创建换行。需要注意的是C程序必须从主函数开始执行。 4. return语句用来指定函数的返回值,具体返回值的类型根据函数类型而定。
C语言良好代码要求: 每个语句/声明占据一行 包含头文件时需要单独一行 可执行语句结束时需使用分号 函数体内的语句需要缩进,一般使用Tab键为一个缩进 括号需要成对出现,删除时也需要成对删除

C 语言中的数据类型主要分为以下几类:
一、基本数据类型:
二、构造数据类型:
三、指针数据类型:
四、空类型:

我们可以使用sizeof运算符来查看每种类型的大小
#include <stdio.h>
int main() {
printf("Size of char : %d byte\n", sizeof(char));
printf("Size of int : %d bytes\n", sizeof(int));
printf("Size of float : %d bytes\n", sizeof(float));
printf("Size of double : %d bytes\n", sizeof(double));
return 0;
}
由上图我们可以看出:
数据类型 | 大小 |
|---|---|
char | 1 字节 |
int | 2 字节 |
float | 4 字节 |
double | 8 字节 |
下面我们来看一下整形数据里所占用字节以及取值范围
数据类型 | 字节 | 取值范围 |
|---|---|---|
int | 2字节 | -32768~32767 |
short int | 2 字节 | -32768~32767 |
long int | 4 字节 | -2147483648 ~2147483647 |
unsigned int | 2 字节 | 0~65535 |
unsigned short int | 2 字节 | 0~65535 |
unsigned long int | 4 字节 | 0~4294967295 |
编者注
我们再来看一下基本数据类型中的浮点型数据
浮点型即是带小数的数字
浮点型数据类型的存在是为了能够更精确地表示实数(即小数)值。在计算机科学和工程中,许多现实世界的量和测量结果都是小数,例如物理学中的测量数据、金融中的货币数值,以及工程设计中的精确计算等。
由于对于小数值精度和范围的需求不同,浮点型数据类型被分为三种:
我们接着使用sizeof运算符来查看每种类型的大小
#include <stdio.h>
int main() {
printf("Size of float : %d bytes\n", sizeof(float));
printf("Size of double : %d bytes\n", sizeof(double));
printf("Size of long double : %d bytes\n", sizeof(long double));
return 0;
}
数据类型 | 字节 | – |
|---|---|---|
float | 4字节 | |
double | 8字节 | |
long double | 16字节 |
C语言中,变量是用来存储和处理数据的标识符,它可以在程序执行过程中改变其值。常量是一个固定的值,在程序执行时不会改变。 变量就好像一个储存盒子,可以装入不同的东西,变的值用变量来表示; 而常量就像是一个固定的数值或者一个固定的东西,不会变化。
int a = 10;
float b = 3.14;在这段代码中: a 是一个变量 而 10 为常量 b 是一个变量 而 3.14 为常量
这里就要注意了: 变量必须先定义 后使用
那么变量如何定义呢? 这里就需要用到赋值符号"=" 结构是 变量 = 表达式
int a = 10;
float b = 3.14;变量的分类 变量分为局部变量与全局变量
printf输出函数
printf函数将所有参数按字符类型输出,返回类型为(int)
输出格式为:printf("输出格式符",输出项);
让我们以更通俗的方式来解析printf()函数每个参数的作用
功能描述 | 示例代码 | 注释 |
|---|---|---|
使用printf打印整数 | printf("输出的钱是:%d\n", money); | %d是一个占位符,用于插入一个整数。这里money是一个整数变量。 |
解释%d | %d | %d是printf函数中用于表示整数的转换说明。 |

对于上图格式的理解
转换说明 | 注解 |
|---|---|
%d | 带符号的十进制整数(即int型) |
%c | 单词字符(即char型) |
%f | 输出6位小数(即float型) |
小补充 %.xf 表示输出的float类型(其中x为想要保留的位数)如不写则默认为6位小数 格式符的个数要与变量、常量或者表达式的个数一一对应
#include <stdio.h>
int main() {
int a = 10;
float b = 3.14;
char c = 'A';
printf("输出的int为: %d\n", a);
printf("输出的float为: %.3f\n", b); //%.xf 表示输出的float类型
//我这里是%.3f 所以输出会保留三位小数
printf("输出的char为: %c\n", c);
return 0;
}
这里只需要简单地修改 printf 函数中的格式说明符就可以改变输出小数的精度 默认为保留六位 读者可以自己试一下
scanf输入函数解析
scanf函数返回(int),该值表示成功按照指定格式正确输入的变量个数。
输出格式为:scanf("输入格式符",输入地址1,输入地址2,....);
让我们以更通俗的方式来解析scanf()函数每个参数的作用
功能描述 | 示例代码 | 注释 |
|---|---|---|
输入整数 | scanf(“%d”, &num); | %d是一个占位符,用于接受一个整数输入。这里num是一个整数变量。 |
解释%d | %d | %d是scanf函数中用于表示整数的转换说明。 |
解释&num | &num | &num 表示获取变量 num 的地址。 |

对于上图格式的理解
#include <stdio.h>
int main() {
int a;// 定义一个整数变量a
float b;// 定义一个浮点数变量b
char c;// 定义一个字符变量c
printf("请输入一个整数: "); // 屏幕提示用户输入一个整数
scanf("%d", &a);
printf("请输入一个浮点数: ");// 提示用户输入一个浮点数
scanf("%f", &b);
printf("请输入一个字符: ");// 提示用户输入一个字符
scanf(" %c", &c);
//输出 自己输入的数字
printf("输入的整数为: %d\n", a);
printf("输入的浮点数为: %.3f\n", b);
printf("输入的字符为: %c\n", c);
return 0;
}
以下是C语言中常用的算数运算符:
运算符名称 | 运算符号 | 示例代码 |
|---|---|---|
加法运算符 | + | 4+2=6 |
减法运算符 | - | 4-2=2 |
乘法运算符 | * | 4*2=8 |
除法运算符 | / | 4/2=2 |
取余运算符(模运算符) | % | 4%2=2 |
自增运算符 | ++ | int a = 1;a++ |
自减运算符 | - - | int a = 1;a- - |
C语言中没有乘方这个运算符,也不能用×, ÷等算术符号。
#include <stdio.h>
int main() {
int a = 5, b = 3, answer;
// 算术运算符示例
answer = a + b; // 加法
printf("a + b = %d\n", answer);
answer = a - b; // 减法
printf("a - b = %d\n", answer);
answer = a * b; // 乘法
printf("a * b = %d\n", answer);
answer = a / b; // 除法
printf("a / b = %d\n", answer);
answer = a % b; // 求余
printf("a %% b = %d\n", answer);
// %%表示这里就是一个%符,这里需要注意一下,不然会报错。
// 自增/自减运算符示例
int x = 5;
x++; // 自增
printf("x 自增为: %d\n", x);
int y = 8;
y--; // 自减
printf("y 自减为: %d\n", y);
return 0;
}
除法运算就要注意了: 如果被除数和除数都是整数,则它们相除的结果也是整数,小数部分将会被省略。例如,8除以3等于2。 但是,如果被除数或除数中有一个是小数,那么它们相除的结果将是一个小数.举例来说,9.0除以2等于4.500000
这里着重强调一下:i++ 与 ++i的区别 非常重要! 如果看不懂区别的话可以先跳过,后面渐渐就可以理解了(或者多看几遍这里)
这两种方式引用顺序不同:
两个示例代码 分别为i++, ++i。
#include <stdio.h>
int main() {
int i = 1,x;
x = i++;//X被赋值为i的当前值,然后i再递增
printf("i = %d, x = %d\n", i, x);
return 0;
}
这里可以看出 我们首先把 i 为1 赋值给了x 然后再进行自增运算 所以这里 i 为2 x为1.因为i=1时是先赋值给了x 再运算。
#include <stdio.h>
int main() {
int i = 1,x;
x = ++i;//x被赋值为递增后的i的值
printf("i = %d, x = %d\n", i, x);
return 0;
}这里因为我们先将 i 增加了 1 然后再赋值给X。 所以这里 i 为2.x也为2.

以下是C语言中常用的关系运算符:
运算符号 | 说明 | 示例代码 | 结果 |
|---|---|---|---|
> (大于) | 若X大于y返回真(1)否则为(0) | 50 > 5 | 1 |
> = (大于等于) | 若X大于y返回真(1)否则为(0) | 50 > = 50 | 1 |
< (小于) | 若X大于y返回真(1)否则为(0) | 50 < 5 | 0 |
< = (小于等于) | 若X大于y返回真(1)否则为(0) | 50 < = 5 | 0 |
== (等于) | 若X等于y返回真(1)否则为(0) | 50 = = 5 | 0 |
!= (不等于) | 若X不等于y返回真(1)否则为(0) | 50 != 5 | 1 |
在这里需要注意以下事项: 在C程序中,关系表达式的结果通常用整数1表示为真,用整数0表示为假。 在使用关系运算符>=、<=、==、!=时,这些符号之间不能有空格,否则会产生编译错误。
以下是C语言中常用的关系运算符:
运算符号 | 说明 | 示例代码 | 结果 |
|---|---|---|---|
&&(与) | 当两边表达式都为真才是真(1),否则为假(0) | 10&&1 | 0 |
||(或) | 当两边表达式都为假才是假(0),否则为真(1) | 10||1 | 1 |
!(非) | 若X大于y返回真(1),否则为(0) | !0 | 1 |
这里需要解释的是:
C语言中的三目运算符,也称为条件运算符,由?和:组成。它的一般形式如下:
表达式1 ? 表达式2 : 表达式3
其执行逻辑为:
如果 表达式1的值为真,则整个表达式的值为表达式2的值;如果表达式1的值为假,则整个表达式的值为表达式3的值。
#include <stdio.h>
int main() {
int x = 5;
int y;
// 使用三目运算符设置变量y的值
y = (x > 0) ? 10 : 20;
// 输出y的值
printf("y: %d\n", y);
return 0;
}
在这个示例中, 当变量x的值大于0时,将变量y的值设为10;否则将变量y的值设为20。
以下是C语言中的其他运算符:
运算符号 | 解释 | 示例代码 | 展开 |
|---|---|---|---|
+ = | 加法赋值的省略写法 | x + = 10 | x=x+10 |
- = | 减法赋值的省略写法 | x - = 10 | x=x-10 |
* = | 乘法赋值的省略写法 | x * = 10 | x=x*10 |
/ = | 除法赋值的省略写法 | x / = 10 | x=x/10 |
% = | 取余的省略写法 | x %=10 | x=x%10 |
优先级 | 运算符 | 名称或含义 | 解释说明 |
|---|---|---|---|
1 | [ ] | 数组下标 | 数组名[常量表达式] |
( ) | 圆括号 | 表达式 | |
. | 成员选择(对象) | 对象 . 成员名 | |
-> | 成员选择(指针) | 对象指针 -> 成员名 | |
2 | - | 负号运算符 | - 表达式 |
~ | 按位取反运算符 | ~ 表达式 | |
++ | 自增运算符 | ++ 变量名 / 变量名 ++ | |
-- | 自减运算符 | - - 变量名 / 变量名 - - | |
* | 取值运算符 | * 指针变量 | |
& | 取地址运算符 | & 变量名 | |
! | 逻辑非运算符 | ! 表达式 | |
sizeof | 长度运算符 | sizeof(表达式) | |
3 | / | 除 | 表达式 / 表达式 |
* | 乘 | 表达式 * 表达式 | |
% | 余数 | 整型表达式 % 整型表达式 | |
4 | + | 加 | 表达式 + 表达式 |
- | 余数 | 整型表达式 % 整型表达式 | |
5 | > | 大于 | 表达式 > 表达式 |
> = | 大于等于 | 整型表达式 > = 整型表达式 | |
< | 小于等于 | 整型表达式 < 整型表达式 | |
< = | 小于等于 | 整型表达式 < = 整型表达式 | |
6 | = = | 等于 | 表达式 = = 表达式 |
! = | 不等于 | 整型表达式 ! = 整型表达式 | |
7 | & & | 逻辑与 | 表达式 & & 表达式 |
8 | | | | 逻辑或 | 表达式 | | 表达式 |
9 | ? : | 条件运算符 | 表达式1?表达式2: 表达式3 |
10 | , | 逗号运算符 | 表达式,表达式, |
意气风发,漫卷疏狂 学习是成长的阶梯,每一次的积累都将成为未来的助力。我希望通过持续的学习,不断汲取新知识,来改变自己的命运,并将成长的过程记录在我的博客中。 如果我的博客能给您带来启发,如果您喜欢我的博客内容,请不吝“点赞”、“评论”和“收藏”,也欢迎您关注我的博客。 您的支持是我前行的动力。听说点赞会给运气加分,希望您每一天都能充满活力! 愿您每一天都快乐,也欢迎您常来我的博客。我叫意疏,希望我们一起成长,共同进步。
我是意疏 下次见!