C学习笔记

容小狸 Lv3
提示

这篇文章是从CSDN上搬过来的,2020年的时候CSDN其实已经有点烂了,我已经在思考要不要自建博客了。
之后我就一直忘了有这篇文章的事了。

最近决定把它搬过来,CSDN就彻底放弃了。

写在前面

这是我第一次写CSDN,就想,既然是第一次,何不把它作为梳理知识的一个机会呢?于是,就有了这篇“灌水文”。在这篇文章里,我将会以我最详细的表述来总结C语言的入门。

大佬们也可以看一眼,指出我的错误,感谢各位大佬指正。
语言可能会很繁琐,如果是想通过我这篇文章学习的各位,希望你们能包容一下我这繁琐的介绍
谢谢各位

关于C语言的介绍,这里就不过多赘述,其他的C语言入门教程已经把C语言介绍的很详细了

那么,欢迎你来到——C语言的殿堂

第一个C语言程序

首先,让我们看一下这个输出“Hello World”的程序

1
2
3
4
5
6
7
8
#include <stdio.h>
//Your first C code: Hello World
int main()
{
printf("Hello World\n");
return 0;
}

C语言中,基本所有的程序以一行为一句,当然不排除因为格式,易读性等原因换行,这里暂时不多解释,具体下面会有部分
这里,我们看到有以下这些语句:

1
#include <stdio.h>
1
//Your first C code: Hello World
1
int main()
1
{

(这里的大括号跟着最后的大括号)

1
printf("Hello World\n");
1
return 0;
1
}

(在编程时,大括号及其中的所有语句应看作一个整体)

#include(预处理)

首先我们看一下第一句:

1
# include <stdio.h>

这里,“stdio.h”被我们叫做“头文件”。它需要被放在开头。头文件的用处就是给程序引入合适的指令和定义
在观察其它语句时,我们看到,别的语句没有“#”标记

在C语言中,带有“#”的都是有预处理功能的语句
有以下这些:

注释

下一句:
//Your first C code: Hello World
这句话是注释,在执行的时候会忽略这句话
注释的作用就是用于标注待办事项,这些语句的作用,或者算法的解释,等等
善用注释是一个很好的习惯,建议不时标注注释,解释语句作用
C语言的注释有很多种
第一种:“//”
在“//”后的所有单行文字会被记为注释,
比如:

1
2
3
//这里就是注释了
printf("但是这个不是注释了");

第二种:“/**/”
这种注释是将其中的所有字符作为注释
例如:

1
2
3
4
/*这里是注释
这里是注释
这里还是注释
注释结束*/

ps:(这一段并不是很重要)其实你还可以通过注释“装饰”代码

1
2
3
/*-=-=-=-=-=-=-=-=-=-=-由 容小狸 制作=-=-=-=-=-=-=-=-=-=-*/
/*程序功能:。。。 */
/*-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/

main()函数,函数声明

在说明main()函数之前,我们不妨看一下原语句:

1
int main()

首先,让我们看一下这个:

1
int

这个词是有什么用呢?我们来分析一下
其实有两个情况,第一种情况:

1
int a;

这里,语句告诉编译器:“a”需要被作为整数来处理,也就是“a”是“整数类型”。
第二种情况:

1
int main(){}

或者,更普通的形式是

1
int function(){}

这种情况就不是告诉编译器这是整数了,而是告诉编译器这个是个函数,并且“返回值”为整数。
返回值将会在之后继续叙述。

一个“函数”,他必须有一个“类型”。
类型的表述是用类型对应的“关键字”表示的
常见的类型及其关键字有一下几种:

类型 C语言“关键字”
整数 int
单精度浮点数 float
双精度浮点数 double
字符 char
布尔值 bool
“空类型” void

这些就是常见的类型以及他的关键字
当然了,类型的“关键字”不只有那么多,之后还会继续介绍
这里的重点是函数,所以我们继续介绍:

函数表示的是其中的代码的集合,在学习资料里经常会有如下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//之前的代码。。。
int func()
{
//代码段。。。
//...
return 0;
}
//之后的代码段。。。
int main()
{
//之前的代码段。。。
func();
//之后的代码段。。。
return 0;
}

运行时,

遇到func()就会跳转到func()的大括号里面
这样使得程序更简单,易懂,对于功能出错可以模块化操作,是个很好的习惯。
(当然,在func()结尾写上func()会使得整个过程循环,造成死循环,某些方面可能会实用,包括在main()函数的结尾写上main()函数会使得整个程序循环)

类型

C语言中有很多关键字:

类型 C语言“关键字”
整数 int
单精度浮点数 float
双精度浮点数 double
字符 char
布尔值 bool
“空类型” void

还有“修饰符”:

C语言关键字(修饰符) 意义
unsigned 没有符号(即没有正负号)
signed 有符号(有正负号)
long 长(整型,浮点型,等)(指存储大小更长)
short 短(整型,浮点型,等)(指存储大小更短)

使用的时候需要知道类型的大小限制,各平台的大小可能不同
例如:
x64平台的int类型范围为:-2147483648到2147483647
而x86_64平台的int类型的范围是:-32768到32767
于是x64平台的int与long是差不多的。注意,并不是完全一样

并且,类型大小限制的影响并不止这点:
当你的大小非常大,比如:
当你在x86_64运算32767+1时,会得到-32768
而在x64平台运算时,会得到32768

当然,影响不只有int 和long
所以编程的时候要注意自己的存储的大小限制,结合自己的需要来使用适合的类型以使用

我们怎么知道平台上的某个类型的存储大小呢?
我们可以使用:sizeof()
比如:

1
2
3
4
5
6
#include <stdio.h>
int main()
{
printf(“the size of int is:%lu”,sizeof(int));
return o;
}

输出结果就是该平台上int的大小

  • 标题: C学习笔记
  • 作者: 容小狸
  • 创建于 : 2020-05-17 03:56:28
  • 更新于 : 2026-04-16 08:17:52
  • 链接: https://blog.rongxiaoli.top/2020/05/16/C-introduction/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论