《算法笔记知识点记录》第二章——快速入门1[数据类型和顺序结构](2)

简介: 《算法笔记知识点记录》第二章——快速入门1[数据类型和顺序结构](2)

3.字符型

1.字符变量和字符常量


char c;
char c = 'e';


其中'e'就叫做字符常量,如何理解呢?我们整数赋值时候int c = 5;,其中的5就是个常量,而这里也是这样可以认为他就是一个固定的值,其实事实也是它确实是一个计算机内定义好的一个值。如果感兴趣的可以查看一下ASCII码表,里面有所有的char类型对应的值和字符,其中有一部分可以显示出来的叫做显示字符,无法显示出来的是作为控制字符使用。


要记住的就是小写字母比大写字母的ASCII值大32即可,其中' '对应的ASCII码刚好就是32(你说你看不见?就是空格嘛0.0)

字符常量在使用的时候一定要用''引号引起来,不然的话就会解释为一个变量名。

一起看个栗子🌰


#include<stdio.h>
int main{
  char c1 = 'z', c2 = 'j', c3 = 117;
  printf("%c%c%c",c1 , c2  ,c3);
  return 0
}


最终的输出就是zju,'u'对应的ASCII码值就是117,是不是很有趣。


🍰2.转义字符

上面提到有些字符是非显示字符,称为控制字符。

我们需要掌握的两个最重要的字符是:


\n代表了换行,就是我们平常使用的回车就会输入这个。

\0代表了空字符,这个一般用来当做字符串的末尾,一般是0,但是也看机器的定义。(注意这不是空格!!!)

举个栗子🌰


#include<stdio.h>
int main(){
  int num1 = 1,num2 = 2;
  printf("%d\n\n%d", num1, num2);
  printf("%c", 7);
  return 0;
}


输出结果就是

1



2

其中7并没有打印任何信息,其实是一个控制播放声音的,所以电脑会响一下吧?是吧是吧?


🍡3.字符串常量

C语言内并没有对应的字符串,所谓的字符串就是若干字符组成的串,所以做法就是用多个字符来保存字符串。上面提到的字符常量是''来引用,那么字符串常量就是""来引用的。有没有发现printf里面的那一串其实就是一个字符串0.0。字符串常量可以作为初始值赋给字符数组,用%s输出。

举个栗子🌰


#include<stdio.h>
int main(){
  char str1[25] = "wo ai de ren bu ai wo";
  char str2[25] = "so sad a story it is";
  printf("%s, %s", str1, str2);
  return 0;
}


输出结果:wo ai de ren bu ai wo, so sad a story it is.

其实上面的char组成的集合就称为字符串数组,可以直接%s输出。

不能吧字符串常量赋值给字符串变量。(类型不一致)


🌽4. 布尔型

在C++中布尔类型可以直接使用,但是**在C语言中,必须添加stdbool.h头文件才能使用。整型常量赋值给布尔型时会自动转化为true(非零),false(零)。

特别注意这里是非零 正数负数都会转化为true!!!

看个栗子🌰


#include<stdio.h>
int main(){
  bool falg1 = 0, flag2 = true;
  int a = 1, b = 1;
  printf("%d %d %d\n", flag1, flag2, a==b);
  return 0;
}


结果就是:0 1 1

前两个很好理解,后面就是判断a是否和b相等,相等就是true否则是false。


🏋🏻1.2.3 强制类型转换

有时候需要把一种数据类型转换成另外一种数据类型。

(新类型名)变量名

这样就完成了一次强制类型转换。

举个栗子🌰


#include<stido.h>
int main(){
  double r = 12.56;
  int a = 3, b = 5;
  printf("%d\n", (int)r);
  printf("%d\n", a / b);
  printf("%.1f", (double)a / (double)b;
  return 0;
}


输出结果:12 0 0.6

可以看到整除就是整数,而转化为浮点数就能得到浮点的结果0.0


⚽️1.2.4符号常量和const常量

符号常量


符号常量通俗的讲,就是替换,即用一个标识符来代替常量,又称为宏定义或者宏替换,基本的格式如下:

#define 标识符 常量

例如:

#include<stido.h>
#define pi 3.14
int main(){
  double r = 3;
  printf("%.2f\n", pi * r * r);
  return 0;
}


执行结果就是28.26。这里就是把pi替换为了3.14


const常量


const定义的常量是只读,这片区域定义的值不允许修改。基本格式如下:

const 数据类型 变量名 = 常量;

一个栗子🌰


#include<stdio.h>
const pi = 3.14;
int main(){
  double r = 3;
  printf("%.2f\n", 2 * pi * r);
  return 0;
}


输出结果18.84


这两个写法都是对的,但是一般更推荐用const的写法,因为define可以定义很多神奇的表达式,它本质就是替换而已,可能会引起错误!!


🏂1.2.5运算符

🤺1.算数运算符

运算符 功能
+ 加法运算符 返回前后两个数字相加
- 减法运算符 返回前后两个数字相减
* 乘法运算符 返回前后两个数字相乘
/ 除法运算符 返回前后两个数字相除(注意数据类型)
% 取模运算符 返回前一个数字除以后面数字的余数
++ 自增运算符 另一个变量增加1
- - 自减运算符 另一个变量减少1


自增和自减有++i和i++的区别,我们只要记住,谁在前面谁先参与运算就好了,++i中++在前面 所以先++,而i++中i在前面 所以i会返回值是i。

🏌🏻2.关系运算符

运算符 含义 语法
< 小于 a < b
> 大于 a > b
<= 小于等于 a <= b
>= 大于等于 a >= b
== 等于 a == b
!= 不等于 a != b

以上运算符都是成立的时候返回true,不成立返回false

🏇3.三种逻辑运算符

运算符 含义 语法 返回值
&& a && b ab都真返回真
其他返回假
|| a || b ab都为假返回假
其他返回真
! !a a为真就返回假 a是假就返回真

🎲4.条件运算符

条件运算符是c于艳丽唯一的三目运算符。

A ? B : C;含义就是当A为真的时候执行并返回B 否则,执行并返回C

举个栗子🌰


#include<stdio.h>
int main(){
  int a = 3, b = 5;
  int c = a > b ? 7 : 11;
  printf("%d\n",c);
  return 0;


返回结果就是11。因为a>b为假 所以返回后面那个值。

这个最常见的应用是求最大值a > b ? a : b;返回的值就是a、b中较大的那一个。


✈️5.位运算符

ebe94a1052f72fa1c7ca460848f2f9d.png


相关文章
|
8天前
|
运维 监控 JavaScript
基于 Node.js 图结构的局域网设备拓扑分析算法在局域网内监控软件中的应用研究
本文探讨图结构在局域网监控系统中的应用,通过Node.js实现设备拓扑建模、路径分析与故障定位,提升网络可视化、可追溯性与运维效率,结合模拟实验验证其高效性与准确性。
68 3
|
10天前
|
存储 监控 算法
企业电脑监控系统中基于 Go 语言的跳表结构设备数据索引算法研究
本文介绍基于Go语言的跳表算法在企业电脑监控系统中的应用,通过多层索引结构将数据查询、插入、删除操作优化至O(log n),显著提升海量设备数据管理效率,解决传统链表查询延迟问题,实现高效设备状态定位与异常筛选。
49 3
|
11月前
|
存储 缓存 算法
通过优化算法和代码结构来提升易语言程序的执行效率
通过优化算法和代码结构来提升易语言程序的执行效率
250 2
|
11月前
|
算法 测试技术 开发者
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗;代码审查通过检查源代码发现潜在问题,提高代码质量和团队协作效率。本文介绍了一些实用的技巧和工具,帮助开发者提升开发效率。
150 3
|
12月前
|
存储 缓存 算法
如何通过优化算法和代码结构来提升易语言程序的执行效率?
如何通过优化算法和代码结构来提升易语言程序的执行效率?
335 5
|
12月前
|
算法 API 计算机视觉
人脸识别笔记(一):通过yuface调包(参数量54K更快更小更准的算法) 来实现人脸识别
本文介绍了YuNet系列人脸检测算法的优化和使用,包括YuNet-s和YuNet-n,以及通过yuface库和onnx在不同场景下实现人脸检测的方法。
462 1
|
12月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
264 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
12月前
|
存储 算法
动态规划算法学习一:DP的重要知识点、矩阵连乘算法
这篇文章是关于动态规划算法中矩阵连乘问题的详解,包括问题描述、最优子结构、重叠子问题、递归方法、备忘录方法和动态规划算法设计的步骤。
747 0
|
12月前
|
数据可视化 搜索推荐 Python
Leecode 刷题笔记之可视化六大排序算法:冒泡、快速、归并、插入、选择、桶排序
这篇文章是关于LeetCode刷题笔记,主要介绍了六大排序算法(冒泡、快速、归并、插入、选择、桶排序)的Python实现及其可视化过程。
158 0
|
12月前
|
算法
❤️算法笔记❤️-(每日一刷-83、删除排序链表中的重复项)
❤️算法笔记❤️-(每日一刷-83、删除排序链表中的重复项)
124 0

热门文章

最新文章