C语言第三课-----------加油 加油 加油

这篇具有很好参考价值的文章主要介绍了C语言第三课-----------加油 加油 加油。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作者前言

 欢迎小可爱们前来借鉴我的gtiee秦老大大 (qin-laoda) - Gitee.com

目录

数组

操作符

常见关键字

________________________________________

紧接上一课,上一篇博客我已经简单介绍了变量的作用域和生命周期,常量,字符串+转义字符+注释,选择语句,循环语句,函数这些下面我们再接着来介绍C语言其他的

插播小知识

前面可能有些小可爱对scanf()有疑问,下面我们就来插播一下这个小知识

scanf

C语言第三课-----------加油 加油 加油

 在图中可以看出,scanf是有返回值的,返回值是实际读取到数据的个数,比如我们要输入两个数字,结果我就输入了一个数字,那scanf()的返回值就是1,当我如果一个都不输入会返回多少,我们来试试

C语言第三课-----------加油 加油 加油

看看,是-1哦哦不要搞错了

'\0'

数字0;0

字符0;'0'  对应的ASCII值为48

转义字符0:'\0' 对应的ASCII值为0 (十进制)    是一个8进制的如:\ddd

全局变量和局部变量名字相同的情况下局部优先

变量初始化

未初始化

#include <stdio.h>
int main()
{
	int a;
    printf("%d", a);
	return 0;
}

结果

C语言第三课-----------加油 加油 加油

 因为你未初始化,a会是随机值,编译器不支持这样所有会报错

________________________________________________________________

数组

简单的来讲就是一堆数据类型相同的数据组成的集合

数组的定义

#include <stdio.h>
int main()
{
	//数组的定义
	int arr[10];
	char arr_1[10];
	double arr_2[10];
	float arr_3[10];
	return 0;
}

       数据类型  数组名[元素个数]

数组的初始化(就是赋值的过程)

#include <stdio.h>
int main()
{
	//数组的初始化
	int arr[10] = {1,2,3,4,5,6,7,8,9,10};//完全初始化
	char arr_1[10] = {'a','b','c'};//不完全初始化
	double arr_2[10] = {0};
	float arr_3[10] = {1.0f,2.0f,3.0f};
	return 0;
}

结果:C语言第三课-----------加油 加油 加油

 

初始化分为完全初始化和不完全初始化,不完全初始化剩下的元素默认为0

这里我们简单了解一下

数组的下标

注意

数组的下标是从0开始的 

C语言第三课-----------加油 加油 加油

我们可以通过下标访问元素或者修改元素

#include <stdio.h>
int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	printf("%d\n", arr[1]);
	arr[1] = 11;
	printf("%d\n", arr[1]);
	return 0;
}

注意一下,就是数组的元素要是数字(整数 ,小数......)才能直接修改,如果是字符的话就不能直接修改了

如果我们想让一一打印出来也是可以的,

代码如下:

#include <stdio.h>
int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	/*printf("%d\n", arr[1]);
	arr[1] = 11;
	printf("%d\n", arr[1]);*/
	int a = 0;
	while (a < 10)
	{
		printf("arr[%d]=%d\n", a, arr[a]);
		a++;
	}
	return 0;
}

结果如下:

C语言第三课-----------加油 加油 加油

 操作符

算术操作符

+(加) -(减) *(乘) / (除) %(取余)
下面我简单的讲解/和%
/
代码如下:
#include <stdio.h>
int main()
{
	int a = 10;
	int b = 3;
	float c = 3.0f;
	//整数的除法
	printf("a/b=%d\n", a / b);
	//小数的除法
	printf("a/c=%lf\n", a / c);
	return 0;
}

结果:

C语言第三课-----------加油 加油 加油

除法有两种一种结果为小数,一种结果为整数

%

代码如下:

#include <stdio.h>
int main()
{
	int a = 10;
	int b = 3;
	printf("a除b取模的值为:%d", a % b);
	return 0;
}

结果:

C语言第三课-----------加油 加油 加油

 记住,只有整数取余,没有小数

 移位操作符(移动的是二进制)

>> <<

后期会讲

位操作符(二进制操作)
& ^ |
后期会讲
赋值操作符
+=    -=   *=   /=   &=   ^ =    |=      >>=     <<=
下面我来讲一讲 +=
代码1:
#include <stdio.h>
int main()
{
	int a = 10;
	int b = 20;
	a = a + b;
	printf("%d",a);
	return 0;
}

代码二:

#include <stdio.h>
int main()
{
	int a = 10;
	int b = 20;
	a += b;
	printf("%d",a);
	return 0;
}

上面两种写法的运行结果都是一样的

a=a+b

a+=b   ==> a=a+b

同理其他也是这个意思

单目操作符
!           逻辑反操作
-           负值
+           正值
&           取地址
sizeof       操作数的类型长度(以字节为单位)
~           对一个数的二进制按位取反
--           前置、后置 --
++           前置、后置 ++
*           间接访问操作符 ( 解引用操作符 )
( 类型 )       强制类型转换
所谓单目操作符就是只能操作一个操作数 前面的+是二目操作符 如a+ b
下面我们介绍!(真变假,假变真)
代码如下:
#include <stdio.h>
int main()
{
	int a = 2;
	int b = 0;
	printf("%d\n", !a);
	printf("%d\n", !b);
	return 0;
}

结果:

C语言第三课-----------加油 加油 加油

使用!时要清楚,为假是默认为0,为真时是默认为1
-和+,sizeof,~我就不讲了后期讲
我来讲讲++
有前置++,先加1,再使用
代码如下
#include <stdio.h>
int main()
{
	int a = 10;
	int b = ++a;//==>a=a+1;b=a;
	printf("a=%d\n", a);
	printf("b=%d\n", b);
	return 0;
}

结果:

C语言第三课-----------加油 加油 加油

后置++,先使用,再加1

代码如下:

include <stdio.h>
int main()
{
	int a = 10;
	int b = a++;//==>a=a+1;b=a;
	printf("a=%d\n", a);
	printf("b=%d\n", b);
	return 0;
}

 结果:

C语言第三课-----------加油 加油 加油

 前置--就是先减1再使用

后置--就是先使用,再减1

这里我就不代码演示了

下面我们来讲讲()类型强制转换

代码如下:

#include <stdio.h>
int main()
{
	int a = (int)1.000;
	printf("%d", a);
	return 0;
}

结果:

C语言第三课-----------加油 加油 加油

 注意,这个不能随便使用

关系操作符
>
>=
<
<=
!=   用于测试 不相等
==       用于测试 相等
逻辑操作符
&&     逻辑与
||           逻辑或
如图:
(0为假,1为真)
C语言第三课-----------加油 加油 加油

&&相当与数学的逻辑且 

||相当于数学的逻辑或

下面代码演示:

#include <stdio.h>
int main()
//给定一个数字,判断是偶数且小于10
{
	int a = 2;
	if (a % 2==0 && a < 10)
	{
		printf("%d满足", a);
	}
	return 0;
}

结果:

C语言第三课-----------加油 加油 加油

条件操作符(三目操作符)

exp1>exp2?exp1:exp1 意思是exp1大于exp2吗,大于就返回exp1,否则返回exp2

代码如下:

#include <stdio.h>
int main()
{
	int a = 5;
	int b = 6;
	int c = (a > b ? a : b);
	printf("%d", c);
	return 0;
}

结果:

C语言第三课-----------加油 加油 加油

 相当于一个判断语句if....else,,,

逗号表达式

(exp1,exp2,exp3...expn)  从左到右运算,返回结果为最后一个expn

代码如下:

#include <stdio.h>
int main()
{
	int a = 10;
	int b = 11;
	int c = 12;
	int d = (a += b, a -= b,b += c, b -= a);
	printf("%d", d);
	return 0;
}

结果:

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    

我们就先讲讲这些意思

auto 自动,只适用于修饰局部变量,让局部变量自动创建和自动销毁,大多数编译器省略了

break 让循环停止

switch()

{ case:语句

 default:语句

}

cotinue:继续, 直接跳过开始下一次循环

do.....while()

extern 声明外来变量 ,函数等

goto  一种语句

register  寄存器

signed 有符号

unsigned 无符号

static 创建静态变量

struct 结构体

typedef  类型重定义

union 联合体

volatile   (运用太少不介绍)

总结

以上就是我分享的内容,欢迎各位小可爱前来私信我文章来源地址https://www.toymoban.com/news/detail-485429.html

到了这里,关于C语言第三课-----------加油 加油 加油的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Kafka第三课

    Kafka第三课

    Flume 由三部分 Source Channel Sink 可以通过配置拦截器和Channel选择器,来实现对数据的分流, 可以通过对channel的2个存储容量的的设置,来实现对流速的控制 Kafka 同样由三大部分组成 生产者 服务器 消费者 生产者负责发送数据给服务器 服务器存储数据 消费者通过从服务器取数据 但

    2024年02月13日
    浏览(9)
  • MyBatis第三课

    MyBatis第三课

    目录 回顾  #和$区别 #(预编译SQL)和$(即时SQL,它是进行的字符串拼接)的区别,其中之一就是预编译SQL和即时SQL的区别 原因: 两者的共同点 MaBits可以看作是Java程序和Mysql的沟通桥梁,底层还是(jdbc) 访问数据库还得是Mysql 多表查询(慢) 1.通常情况下,数据库集群是很多

    2024年01月20日
    浏览(9)
  • springboot综合案例第三课

    Spring Security 的前身是 Acegi Security ,是 Spring 项目组中用来提供安全认证服务的框架。 (https://projects.spring.io/spring-security/) Spring Security 为基于J2EE企业应用软件提供了全面安全服务。特别 是使用领先的J2EE解决方案-Spring框架开发的企业软件项目。人们使用Spring Security有很多种原

    2024年02月12日
    浏览(20)
  • 初步认识OSPF的大致内容(第三课)

    初步认识OSPF的大致内容(第三课)

     直连路由(Directly Connected Route)是指网络拓扑结构中相邻两个网络设备直接相连的路由,也称为直接路由。如果两个设备属于同一IP网络地址,那么它们就是直连设备。直连路由表是指由计算机系统生成的一种用于路由选择的表格,其中记录着直连路由的信息。直连路由表中

    2024年02月11日
    浏览(9)
  • 第三课:C++实现PDF去水印

    第三课:C++实现PDF去水印

    目录 1.功能概述与实现方法 2.代码实现 3.代码使用方法 4.PDF加水印原理和方法 4.1.使用“优速水印工厂”给pdf加水印 4.2.使用Acrobat XI软件给pdf加水印 4.3.使用优米处理器给pdf加水印 4.4.使用云朵办公给pdf加水印 4.5.使用livePDF给pdf加水印 PDF去水印是一项非常复杂的任务,需要一定

    2024年02月09日
    浏览(9)
  • 【0基础学Java第三课】-- 运算符

    【0基础学Java第三课】-- 运算符

    计算机的最基本的用途之一就是执行数学运算,比如+,,就是运算符,即: 对操作数进行操作时的符号,不同运算符操作的含义不同。 作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。Java中运算符可分为以下: 算术运算符(+ - */) 关系运算符( ==) 逻辑运算符

    2024年02月07日
    浏览(12)
  • 昇思MindSpore技术公开课——第三课:GPT

    昇思MindSpore技术公开课——第三课:GPT

    1.1Unsupervised Language Modelling GPT代表“生成预训练”(Generative Pre-trained Transformer)。GPT模型是由OpenAI公司开发的一种基于Transformer架构的人工智能语言模型。它在大规模文本数据上进行预训练,学习了丰富的语言知识和语境,并能够执行多种自然语言处理任务。 GPT模型的核心思

    2024年01月18日
    浏览(14)
  • 第三课-界面介绍SD-Stable Diffusion 教程

    第三课-界面介绍SD-Stable Diffusion 教程

    我们已经安装好了SD,这篇文章不介绍难以理解的原理,说使用。以后再介绍原理。 我的想法是,先学会画,然后明白原理,再去提高技术。 我失败过,知道三天打鱼两天晒网的痛苦,和很多人一样试了安装 github 版本,生成了几张图,发现效果不太理想,就放着了。后来也

    2024年02月13日
    浏览(11)
  • 数据结构第三课 -----线性表之双向链表

    数据结构第三课 -----线性表之双向链表

    🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 ​🎂 作者介绍: 🎂🎂 🎂 🎉🎉🎉🎉🎉🎉🎉 🎂 🎂作者id:老秦包你会, 🎂 简单介绍:🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂 喜欢学习C语言和python等编程语言,是一位爱分享的博主,有兴趣的小可爱可以来互讨 🎂🎂

    2024年02月05日
    浏览(49)
  • rabbitmq第三课-RabbitMQ高级功能详解以及常用插件实战

    rabbitmq第三课-RabbitMQ高级功能详解以及常用插件实战

    实际上是可以选择三种队列类型的,classic经典队列,Quorum仲裁队列,Stream流式队列。 后面这两种队列也是RabbitMQ在最近的几个大的版本中推出的新的队列类型。3.8.x推出了Quorum仲裁队列,3.9.x推出了Stream流式队列。这些新的队列类型都是RabbitMQ针对现代新的业务场景做出的大的

    2024年02月10日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包