首页 > 其他分享 >学习C语言必备的基础知识详解

学习C语言必备的基础知识详解

时间:2023-12-02 18:32:55浏览次数:51  
标签:int 数据类型 基础知识 注释 详解 操作符 printf C语言 赋值

(⽬录)

前言

学习C语言的第一步,肯定是要先去学习了解一下相关的概念和符号,我们写的代码就是由一堆规定好的有特殊含义的符号组成的。

1、数据类型

C语言的数据类型细分出来会有很多种,每种数据类型占内存大小都不同,对于刚接触编程语言的人来说,确实很让人头疼。其实存在这么多的类型,是为了能够更加丰富的表达生活中的各种值。比如钱,既有面额100元、50元、10元的,也有1元、1角甚至是1分的。如果我们手里有一张百元大钞,去商店购物看到有一件打折后卖98元的衣服,那我们可以直接用手里的一百元去付钱就行了,但是当你看到了儿时很喜欢吃的糖,还是卖1角两个,这个时候你再拿着100去买,就有点不合适了。对于数据存放在内存中也是同样的道理,太大浪费,太小又装不下。

我们常用到的数据类型有:

char        //字符数据类型
short       //短整型
int         //整形
long        //长整型
long long   //更长的整形
float       //单精度浮点数
double      //双精度浮点数

以上的每⼀种数据类型都有自己的长度,使用不同的数据类型,能够创建出长度不同的变量,变量长度的不同,存储的数据范围就有所差异。我们可以用sizeof操作符去查看。 sizeof 是⼀个关键字,也是操作符,专门是用来计算sizeof操作符数的类型长度的,单位是字节。

![在这里插入图片描述](/i/ll/?i=direct/77b556151a864b6e90cb008bf6e89d3d.png#pic_center =700x400)

2、变量

创建变量的语法形式:

data_type name;
	|	    |
	|	    |
 数据类型   变量名


int age = 18;//整型变量,初始化为18
char ch = 'a';//字符变量,初始化为a
double pi = 3.14;//浮点型变量,初始化为3.14

变量的分类

  • 全局变量:在大括号外部定义的变量就是全局变量,全局变量的使用范围更广,整个⼯程中想使用,都是有办法使用的。
  • 局部变量:在大括号内部定义的变量就是局部变量,局部变量的使用范围是比较局限,只能在自己所在的局部范围内使用的。

当全局变量与局部变量同名时,局部变量优先。

在这里插入图片描述

3、算术操作符:+、-、*、/、%

算数操作符和我们数学中的加减乘除一样,都是用于计算使用的。不过要注意乘除符号,“*”是乘号,“/”是除号。 此外还有一个“%”,这是取余(取模)操作符。运算符 % 表示求模运算,即返回两个整数相除的余值。这个运算符只能用于整数,不能用于浮点数。

对于除法操作符“/”要注意的问题

  • 除号的两端如果是整数,执行的是整数除法,得到的结果也是整数。
  • 如果希望得到浮点数的结果,两个运算数必须至少有⼀个浮点数,这时 C 语言就会进行浮点数除法。
#include <stdio.h>
int main()
{
	printf("%d\n", 6 / 3);//结果为2
	printf("%f\n", 6 / 3.0);//结果为2.000000
	return 0;
}

对于取余操作符“%”要注意的问题

  • 这个运算符只能用于整数,不能用于浮点数。
  • 负数求模的规则是,结果的正负号由第⼀个运算数的正负号决定。
#include <stdio.h>
int main()
{
	printf("%d\n", 11 % -5);//结果为 1
	printf("%d\n",-11 % -5);//结果为 -1
	printf("%d\n",-11 % 5); // 结果为 -1
	return 0;
}

4、赋值操作符

“=”为赋值操作符,就是给定义的变量赋值

int age = 18;//赋值为 18
char ch = 'a';//赋值为 a
double pi = 3.14;//赋值为 3.14

注意赋值操作符只有一个等号,还有一个经常混淆的操作符 “==”,它是有两个等号组成的,用于比较两个操作数是否相等。

#include<stdio.h>
int main()
{
	int a = 1;//一个等号,是赋值
	int b = 2;
	if(a == b)//两个等号,是比较是否相等
	{
		printf("a与b相等!");//如果相等,则打印这句话。
	}
	return 0;
}

5、单目操作符:++、--

++是⼀种自增的操作符,又分为前置++和后置++。

b = ++a 等价于 b = a + 1

如果a为5,则b为6,a也为6

b = a ++ 等价于 b = a; a = a + 1;

如果a为5,则b为5,a为6

另外还有自减的操作符,也分为前置- -和后置- -,和自增的方式是一样的。

在这里插入图片描述

6、强制类型转换

如果不需要强制类型转化就能实现代码,这样自然更好的。 虽说,强扭的瓜不甜,但有时候为了能让程序顺利运行,我们不得已要去使用强制类型。

在这里插入图片描述

7、关键字

C语言中有一批保留的名字的符号,比如:int、if、return,这些符号被称为保留字或关键字。其实简单点理解,关键字就相当于一个个的商标名字,有一部分已经被抢先注册的,那别人注册了就有了使用权,别人就可以确定这个商标使用在什么样的场景,别人只能承认。

因此要注意:

  • 关键字都有特殊的意义,是保留给C语言使用的
  • 程序员自己在创建标识符的时候是不能和关键字重复的
  • 关键字也是不能自己创建的。

常见的关键字有:

auto break case char const continue default do double else enum extern
float for goto if int long register return short signed sizeof static
struct switch typedef union unsigned void volatile while

8、字符和ASCII编码

在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,后来美国国家标准学会(ANSI)出台了⼀个标准 ASCII 编码,统一规定了上述常用符号用哪些二进制数来表示。

在这里插入图片描述

初看这张表是不是以为要把它背出来?其实我们不需要记住所有的ASCII码表中的数字,使用时查看就可以了,即使考试时无法查看,也可以用下面方法在编译器上打印出来。 在这里插入图片描述

9、字符串和\0

字符串顾名思义就是由多个字符组成的一串,定义是要使用双引号括起来。例如"abcdef"就是一个字符串,打印格式为%s。要注意字符串末尾隐藏着一个\0,这个\0是字符串结束的标志。

在这里插入图片描述

为了更清楚的了解结束标志\0的作用,我们在其中插入\0,看编译器的运行情况

在这里插入图片描述

10、转义字符

转义字符顾名思义:转变原来的意思的字符。 例如:\n就是一个转义字符表示换行的意思,我们可以简单的理解为 \n 的意思发生了转变, n 本来是⼀个普通的字符,被 \转义换行的意思。 在这里插入图片描述

一些常见的转义字符还有如下:

  • \a :警报,这会使得终端发出警报声或出现闪烁,或者两者同时发⽣。
  • \b :退格键,光标回退⼀个字符,但不删除字符。
  • \f :换⻚符,光标移到下⼀⻚。在现代系统上,这已经反映不出来了,⾏为改成类似于 \v 。
  • \n :换⾏符。
  • \r :回⻋符,光标移到同⼀⾏的开头。
  • \t :制表符,光标移到下⼀个⽔平制表位,通常是下⼀个8的倍数。
  • \v :垂直分隔符,光标移到下⼀个垂直制表位,通常是下⼀⾏的同⼀列。
  • \ddd :d d d表⽰1~3个⼋进制的数字。 如: \130 表⽰字符X
  • \xdd :d d表⽰2个⼗六进制数字。 如: \x30 表⽰字符0
  • \0 :null 字符,代表没有内容, \0 就是 \ddd 这类转义字符的⼀种,⽤于字符串的结束标志,其 ASCII码值是0.

更多转义字符参考

11、注释是什么?为什么写注释?

C语言的注释方式有两种

  • /**/
  • //
单行注释
/*注释内容*/
或
//注释内容
---------------------------------------------
多行注释
/*
注释内容
注释内容
*/
或
//注释内容
//注释内容

实例分析:

#include<stdio.h>
int main()
{
	int a = 1;//定义一个整型变量a,并赋值为1
	int b = 2;//定义一个整型变量b,并赋值为2
	printf("%d\n",a+b);
	/*
		%d表示打印整型,\n表示换行
		printf则是为了在控制台上打印出a+b的值
	*/
	
	return 0;
}

对于注释,可能很多人会有疑问,为什么要这么麻烦去写注释?写了注释会增加程序运行的负担吗?其实大可不必有这些顾虑因为我们写的注释在预处理器阶段前就被移除了,我们写的注释,编译器压根就不知道。注释是为了方便程序员们更高效地开发程序,自己写的程序的功能要告诉别人,同时别人写的程序自己也能看懂。即使是自己写的代码,可能过了一段时间后,如果没有注释也会看不懂当时的思路是怎么样的。所以写注释不仅方便别人,也方便自己,平时写代码时要养成写注释的习惯。

最后

本文是根据本人学习总结的一些C语言的基础知识,文中如有错误,希望告知我,好让我改正。如有问题,可以一起讨论学习!

标签:int,数据类型,基础知识,注释,详解,操作符,printf,C语言,赋值
From: https://blog.51cto.com/u_16312968/8658385

相关文章

  • c语言作业_1
    作业标题(649)从大到小输出作业内容写代码将三个整数数按从大到小输出。例如:输入:231输出:321#include<stdio.h>intmain(){inta=2;intb=3;intc=1;scanf("%d%d%d",&a,&b,&c);//从大到小输出3个整数abcif(a<b){inttm......
  • c语言作业_2
    作业标题(659)分数求和作业内容计算1/1-1/2+1/3-1/4+1/5……+1/99-1/100的值,打印出结果#include<stdio.h>intmain(){ inti=0; doublesum=0.0; intflag=1; for(i=1;i<=100;i++) { sum+=flag*1.0/i; flag=-flag; } printf("%lf\n",sum);......
  • 位运算符-C语言-2023/12/2
    不全面......
  • 浙大翁恺-C语言入门-第二周②
    但现在,我不再畏惧。-Faker《不死者》---运算符(符号)、算子(进行计算的量)C语言,开始的时候是用的打字机,打字机没有乘除号,所以用星号*和右斜杠/分别代表乘,除。这样就有了加减乘除四则运算。另外特殊的取余操作,用的百分号%,取余获得两个数相除的余数。C=A%B;思考问题:计算时间......
  • 内存取证volatility工具命令详解
    一、环境安装1.kali下安装Volatility2注意:一般Volatility2比Volatility3好用wgethttps://bootstrap.pypa.io/pip/2.7/get-pip.pypython2get-pip.pypython2-mpipinstallCryptopython2-mpipinstallpycryptodomepython2-mpipinstallpytzpython2-......
  • 学生成绩管理--C语言
    #学生成绩管理系统效果1.菜单选项voidwelcome()//菜单{printf("欢迎使用学生管理系统\n");printf("1.增加学生信息\n");printf("2.展示学生信息\n");printf("3.删除学生信息\n");printf("4.修改学生信息\n");printf("......
  • 微服务调用方式详解
    在微服务架构中,需要调用很多服务才能完成一项功能。服务之间如何互相调用就变成微服务架构中的一个关键问题。服务调用有两种方式,一种是RPC(RemoteProcedureCall)方式,另一种是事件驱动(Event-driven)方式,也就是发消息方式。消息方式是松耦合方式,比紧耦合的RPC方式要优越,但RPC方式如......
  • Java流Stream使用详解(中)
    一、Stream流的中间方法名称说明Stream<T> filter(Predicate<?superT> predicate)过滤Stream<T> limit(longmaxSize)获取前几个元素Stream<T> skip(longn)跳过前几个元素Stream<T> distinct()元素去重,依赖(hashCode和equals方法)static<T> Stream<T> concat(Stream......
  • 【运算符和表达式】关系运算符 -C语言-2023/11/29
    //比较后会返回两种结果:用数字0意思为“假”,用数字1意思为“真”。这里强调”意思为“。比如:我写个6>8<9这样一个式子结果显示1意思为真因为这里计算机先执行6>8结果为0,变为0之后再执行0<9变为1意思为真. ......
  • 逻辑运算符-C语言-2023/12/2
    ......