首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【C语言】C语言零基础纯干货教学(上)

【C语言】C语言零基础纯干货教学(上)

作者头像
s-little-monster
发布于 2024-06-06 12:59:42
发布于 2024-06-06 12:59:42
24600
代码可运行
举报
运行总次数:0
代码可运行

一、C语言常见概念

1、C语言是什么

C语言是一种计算机语言,人们通过计算机语言来给机器下达指令,它生成的文件为.c文件,通过链接和编译生成可执行程序.exe 后缀为.h的称为头文件,后缀为.c的称为源文件

2、main函数

每个C语言程序不管有几行代码,都是从main函数开始执行的,main函数是程序的入口,也被称为主函数main前面的int是整形,与最终的return 0相呼应 这里在老的版本中,main的前边是void,后来因为这个使用方法有问题就不再使用了,我们要记住的是:一个程序中,以下代码是必须存在的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int main()
{
    return 0;
}

3、printf以及库函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
printf("Hello World");

printf函数是打印函数,它可以实现信息在屏幕上的打印 它是一个库函数,可以打印不同的数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int n = 100;
printf("%d\n", n); //打印整型
printf("%c\n", 'q'); //打印字符
printf("%lf\n", 3.14);//打印双精度浮点型

printf的具体使用方法我们拿来与scanf一起讲解,这里我们主要想引出库函数的概念: 库函数就是将函数封装入库,供用户使用的一种方式 一个系列的库函数一般会生命在一个头文件当中,当你想要使用它时需要包含相应的头文件 比如我们写一个完整的Hello World程序

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>//头文件
int main()
{
    printf("Hello World");//printf是库函数,需要包含头文件stdio.h
    return 0;
}

4、C语言关键字

C语言有一些关键字例如:int if return for while等等,每个关键字都有特殊的意义,是保留给C语言使用的 程序员在创建标识符时不能与关键字重复 关键字不能被程序员创建

5、字符和ASCII编码

在键盘上敲出的字母数字符号都被称作字符,在C语言中,字符是被单引号括起来的 ‘a’ ‘1’ ‘$’ 在计算机中,所有数据都是以二进制形式存储的,这些字符就是用ASCII编码存储的 点击这里查看ASCII编码表 我们不需要背过这个表格,只需记住其中的几个特殊值: 字符A-Z的ASCII码值65-90 字符a-z的ASCII码值97-122 对应的大小写字符(a和A)的ASCII码值的差值是32

6、字符串和转义字符

前面我们提到用单引号括起来的是字符,被双引号括起来的就是字符串了 打印

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main()
{
 printf("%s\n", "Hello World\n");
 printf("Hello World");
 return 0;
}

字符的末尾放着一个不可见的 ‘/0’,它是一个转义字符,这个符号是字符读取结束符,遇到它字符串的读取就结束了 \n是也是一个转义字符,是换行的意思 常用的转义字符除了这两个还有 /t 制表符以及一系列其他转义字符

7、语句和语句分类

(1)空语句

空语句就是仅由一个分号构成的语句,这个语句没有任何的意义,如果我们需要一个语句,并且这个语句不需要做任何事,就可以写一个空语句

(2)表达式语句

就是最普通的语句,由表达式加上分号构成的

(3)函数调用语句

函数调用时,后边加上分号

(4)复合语句

大括号里边的大括号里边的语句,就是复合语句

(5)控制语句
①条件判断语句

if 语句 switch 语句

②循环执行语句

do while 语句 while 语句 for 语句

③转向语句

break 语句 goto 语句 continue 语句 return 语句

8、注释

注释对程序的运行没有任何影响,注释是写给人看的,有利于其他程序员在使用你的程序的时候能够更好地理解

(1)注释的形式
① /**/ 型

这种形式是最好用的,包含了所有可能遇到的进行注释的位置,使用时将需要注释的内容放到两个*之间

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/* ................ */

它的优点就是可以在代码中间使用,缺点就是比起//多打点字符

② // 型

//可以注释掉它后边一行的所有字符

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// ...............

优点是方便使用,缺点是不能放到代码中间使用

(2)注意事项

①注释不能放在双引号中使用,双引号中的注释字符会被认为是字符串 ②注释在编译时被替换为一个空格

二、数据类型和变量

1、数据类型

以下被方括号括起来的在使用时可以省略不写 signed是有符号的 unsigned是无符号的

(1)字符型char
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
char 
[signed] char 
unsigned char 
(2)整形int
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//短整型
short [int]
[signed] short [int]
unsigned short [int]
//整型
int
[signed] int
unsigned int
//⻓整型
long [int]
[signed] long [int]
unsigned long [int]
//更长的整形
long long [int]
[signed] long long [int]
unsigned long long [int]
(3)浮点型float、double
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
float//单精度浮点型
double//双精度浮点型
long double//长双精度浮点型

2、各种数据类型的长度

(1)sizeof操作符

sizeof操作符是专门用来计算操作数的类型长度的 它有两种类型的操作数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sizeof( 类型 )
sizeof 表达式//当操作数是表达式时可以省略括号

sizeof的操作数不参与运算,根据表达式的类型得出大小 返回值是size_t类型的,是无符号整形,但其为无符号长整型还是无符号长长整形还是无符号整形由编译器决定

(2)数据类型长度
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>

int main()
{
	printf("%zd\n", sizeof(char));
	printf("%zd\n", sizeof(short));
	printf("%zd\n", sizeof(int));
	printf("%zd\n", sizeof(long));
	printf("%zd\n", sizeof(long long));
	printf("%zd\n", sizeof(float));
	printf("%zd\n", sizeof(double));
	printf("%zd\n", sizeof(long double));
	return 0;
}
(3)sizeof中表达式不计算
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main()
{
    short s = 2;
    int b = 10;
    printf("%d\n", sizeof(s = b+1));
    printf("s = %d\n", s);
    return 0;
}

2、变量

(1)变量的创建

变量是由数据类型+变量名创建的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int age; //整型变量
char ch; //字符变量
double weight; //浮点型变量

给创建的变量一个初始值,就是变量的初始化

(2)变量的分类
①全局变量

大括号外定义的变量,整个程序都可以使用

②局部变量

大括号内定义的变量,只有它所在的局部范围能够使用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>

int a = 1;//全局变量

int main()
{
	int b = 2;//局部变量
	return 0;
}

如果全局变量与局部变量名相同,采用就近原则

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>

int a = 1;//全局变量

int main()
{
	int a = 2;//局部变量
	printf("%d",a);
	return 0;
}

3、算数操作符

算数操作符是双目操作符,就是有两个操作数的操作符,+、-、*、/、%都是算数操作符

4、赋值操作符 =

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int a = 0;//初始化
a = 1;//赋值
(1)连续赋值
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int a = 1;
int b = 2;
int c = 3;
c = b = a+4;//连续赋值,从右向左依次赋值

当然我们建议分开来写,条理更加清晰

(2)复合赋值符
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int a = 0;
a = a+1;
a = a-2;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int a = 0;
a += 1;//a+=1又被写作a++,意义相同
a -= 2;

5、单目操作符

++ 、 –

刚刚在复合赋值符中的a+=1可以写作a++,意思就是a+=1 a–意思就是a-=1 ++和–分为前置和后置 前置++/–:先+1/-1后赋值 后置++/–:先赋值后+1/-1

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>


int main()
{
	int a = 1;
	int b = ++a;
	a = 1;
	int c = a++;
	printf("%d\n",b);
	printf("%d\n",c);

	return 0;
}

6、scanf 和 printf的使用

我们前边提到了printf,其实scanf和printf是一对函数,它们经常一起被使用 在使用它们两个函数之前需要包含头文件stdio.h

(1)printf
①基本用法
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
printf("Hello World\n");

在屏幕上打印双引号内的内容

②占位符
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>


int main()
{
	int a = 1;
	printf("%d", a);
	return 0;
}

这里的%d就是占位符,可以被逗号后的a所代替,而每种数据对应的占位符是不同的

占位符

数据类型

%s

字符串

%c

单个字符

%d

int

%f

float/double

%lf

long double

%zd

size_t

%u

unsigned int

%ld

long int

在一句话中可以有多个占位符

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>


int main()
{
	int a = 1;
	int b = 2;
	printf("a is %d and b is %d", a,b);
	return 0;
}
③定制输出格式
限定宽度:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main()
{
	int a = 1234;
	printf("%5d", a);
	return 0;
}

%5d表示占位符的宽度至少为5位,如果不满5位左边补空格,默认右对齐

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main()
{
	int a = 1234;
	printf("%-5d", a);//数字前边加上-成为左对齐
	return 0;
}

如果是小数,因为默认的小数点后精确到第六位,所以补三个空格

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main()
{
	float a = 12.34;
	printf("%12f", a);
	return 0;
}
限定小数位数
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main()
{
	float a = 12.34;
	printf("%.2f", a);
	return 0;
}

当我们觉得精确到六位精度太高想要显示精确到两位小数时,我们可以在f前加上.2,这样就可以精确到后二位

可以与前面的内容一起用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main()
{
	float a = 12.34;
	printf("%5.2f", a);
	return 0;
}
输出部分字符串
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main()
{
	printf("%.5s", "Hello World");
	return 0;
}

可以打印前五个字符

(2)scanf

scanf就是将信息输入,printf就是输出

①基本用法

程序运行到这个语句时会停下来,等待用户从键盘输入 它的使用需要包含头文件stdio.h

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int i = 0;
scanf("%d",&i);

&是取地址操作符,我们在使用scanf时,需要传入被修改值的地址

一次输入多个值:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
scanf("%d%d%f%f", &a, &b, &c, &d);

空格,回车等键被认为是结束某一值的输入 比如说输入1后空格,第一个值a就是1

②scanf的返回值

scanf的返回值是一个整数,表示成功读取的变量个数,没有读取或者匹配失败返回0,读取数据前发生了错误或读到文件结尾返回EOF

③占位符

与printf相同,不过有几个注意事项: 对于%c,除了它以外,所有的占位符都会自动忽略起首的空白字符,它总是会返回它所遇到的第一个字符 对于%s,我们输入完成后,它会检测到空白字符,它会从第一个非空白字符开始读起,直到遇到空白字符为止,所以在输入时的空格会被认为是上一句的结束

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int a = 0;
scanf("%5d",a);

上面在d前加上5,意味着最终会取到的最多个字符是5个,多输入的会被丢弃

再来看下一篇~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-06-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
c语言中数据类型和变量
char是否有符号取决于编译器的实现,大部分的编译器上 char = signed char
Undoom
2024/09/23
1450
初识C语言(下)
本章内容为初始C语言下半部分,将一些C语言的常见概念进行阐述并不会深层次的探究,后续会深入讲解C语言的,适合初学者能够初步认识到C语言及其常见的概念。高校教育较为注重素质教育和现在的公司需求还是有一定的差距,这篇文章可以为初学C语言的初学者们提供参考,如果你对C语言的整体知识不太了解,可以读一读笔者的文章,带你零基础学透C语言。
四念处茫茫
2025/01/25
1480
初识C语言(下)
C语言基础
“知己知彼,百战百胜”,大学计算机专业接触的第一门专业课就是C语言,那么什么是C语言呢?人和人之间可以用汉语、英语进行交流,那人和计算机之间应该如何交流呢?这个时候就需要计算机语言。C语言就是常见的计算机语言中的一种,还有Java、C++等计算机语言。
用户11352420
2024/11/07
1860
C语言基础
【C语言】基本语法知识&&C语言函数&&操作符详解
首先介绍一下我使用的工具:VS2019——集成了很多的功能:编辑、编译、链接、运行、调试等
用户10925563
2024/06/04
3780
【C语言】基本语法知识&&C语言函数&&操作符详解
【C语言指南】sizeof与strlen的使用及其区别
sizeof 运算符的返回值,C语⾔只规定是⽆符号整数,并没有规定具体的类型,⽽是留给系统⾃⼰去决定, sizeof 到底返回什么类型。不同的系统中,返回值的类型有可能是unsigned int ,也有可能是 unsigned long ,甚⾄是 unsigned long long ,对应的 printf() 占位符分别是 %u 、 %lu 和 %llu 。这样不利于程序的可移植性。
倔强的石头_
2024/12/06
1.2K0
【C语言指南】sizeof与strlen的使用及其区别
C语言基础语法
风中的云彩
2024/11/07
1720
关于我、重生到500年前凭借C语言改变世界科技vlog.2——C语言数据类型和变量
C语言的数据类型多种多样,类型不仅是我们了解数据的开始,也是数据初始化、函数自定义等的操作,编译器只有知道了数据的类型,才能进行相应的操作
DARLING Zero two
2024/11/19
1120
关于我、重生到500年前凭借C语言改变世界科技vlog.2——C语言数据类型和变量
C语言笔记---(2)基本语法
这里有一个主函数,主函数他是必不可少的,一个C程序有且只有一个主函数,即main函数。在最新的C标准中,main函数前的类型为int而不是void。
是小北a
2022/03/28
1K0
C语言笔记---(2)基本语法
完全入门C语言
C语言是一门通用的计算机编程语言,广泛应用于底层开发。其设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。有良好的跨平台的特性。 同时C语言还是面向过程的编程语言,这与JAVA C++等面向对象的编程语言有所不同。 目前主流的C语言编译器有:GCC Clang MVSVC等
Yui_
2024/10/15
2850
完全入门C语言
【C语言】数据类型和变量
C语言提供了丰富的数据类型来描述生活中的各种数据。使用整型类型来描述整数,使用字符类型来描述字符,使用浮点型类型来描述小数。所谓“类型”,就是相似的数据所拥有的共同特征,编译器只有知道了数据的类型,才知道怎么操作数据。
zxctscl
2024/09/24
2500
【C语言】数据类型和变量
c语言从入门到实战——C语言数据类型和变量
本文基于VS2022,将介绍一系列的C语言数据类型和变量,让读者对C语言有一个初步的了解,并对后续的学习做下铺垫。
鲜于言悠
2024/03/20
3870
c语言从入门到实战——C语言数据类型和变量
C语言——A/概念
这是我挖的新坑系列之《C语言的学习》,用来记录学习C语言的过程,以后星期五上传一篇文章,欢迎铁汁来喷!!!
用户11015888
2024/03/11
1770
C语言的数据类型和变量-学习笔记
今天上课时,老师和我们说学习编程和代码是为了解决未来生活中的问题,写出的代码是为了能够描述现实世界。欧克,接下来将和大家一起学习C语言相关知识。希望对大家能够有所帮助!!!
LonlyMay
2024/10/21
1210
C语言的数据类型和变量-学习笔记
【C语言】数据类型和变量
布尔类型的使⽤得包含头⽂件 <stdbool.h> 布尔类型变量的取值是:true或者false.
大耳朵土土垚
2024/03/13
1280
【C语言】数据类型和变量
详解C语言的数据类型和变量(上)
使用整型类型来描述整数,使用字符类型来描述字符,使用浮点数类型来描述小数。 所谓的“类型”,就是相似的数据所拥有的共同特征,编译器只有知道了数据类型,才能懂得如何操作接下来的数据。
埋头编程
2024/10/16
1730
详解C语言的数据类型和变量(上)
我与C语言二周目邂逅vlog——2.数据类型和变量
C语⾔提供了丰富的数据类型来描述⽣活中的各种数据。 使⽤整型类型来描述整数,使⽤字符类型来描述字符,使⽤浮点型类型来描述⼩数。 所谓“类型”,就是相似的数据所拥有的共同特征,编译器只有知道了数据的类型,才知道怎么操作数据
hope kc
2024/09/23
1430
我与C语言二周目邂逅vlog——2.数据类型和变量
C语言笔记---(2)基本语法
这里有一个主函数,主函数他是必不可少的,一个C程序有且只有一个主函数,即main函数。在最新的C标准中,main函数前的类型为int而不是void。
是小北a
2024/08/23
1480
C语言笔记---(2)基本语法
【C语言篇】C语言数据类型和变量——超详细入门教程
所谓“类型”,就是相似的数据所拥有的共同特征,编译器只有知道了数据的类型,才知道怎么操作数据。下⾯盘点⼀下C语⾔提供的各种数据类型,本文主要探讨内置数据类型。
半截诗
2024/10/09
4030
【C语言篇】C语言数据类型和变量——超详细入门教程
轻松拿捏C语言——数据类型和变量
在C语言中含有许多丰富的数据类型,比如用整形类型来描述整数,用浮点类型来描述小数,用字符型来描述字符。
用户11162265
2024/06/14
1660
轻松拿捏C语言——数据类型和变量
c语言从入门到实战——在系统学习C语言之前所需要了解的知识
本文基于VS2022,将介绍一系列的C语言常见概念,让读者对C语言有一个初步的了解,并对后续的学习做下铺垫。
鲜于言悠
2024/03/20
2280
c语言从入门到实战——在系统学习C语言之前所需要了解的知识
相关推荐
c语言中数据类型和变量
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档