C语言学习之路之基础变量
Hello,大家好,今天又和大家见面了!前两天,我看到了几款游戏引擎渲染效果的对比的视频,https://www.bilibili.com/video/av5113296?from=search&seid=8788485164924869274,就是哔哩哔哩上这个视频,我把链接放在这里了!当我看到这几款游戏引擎的渲染效果之后,开始觉得,计算机图形学和算法的重要性。游戏引擎本来就是对性能有很高要求的软件系统,所以,一般是使用C/C++语言加上一部分的汇编语言开发而成的,支持GPU的并发编程,可以说是算法的集合体。而在这里,程序的优化就非常的重要。我们都知道,有一部分游戏,虽然本身很大,但是,当你在玩游戏的时候,却并不会感觉得到太过于明显的卡顿,但是另外一部分游戏,却是特别的卡顿。这里涉及到程序优化的一部分知识。
C/C++程序设计语言是没有GC的,然而像Java,Python,一起其他的一些高级语言,往往都带有GC,这导致在游戏过程中会出现抖动,游戏不顺畅。所以,游戏开发这个领域,还是C/C++的主战场,虽然现在有一种新的编程语言Rust也是不带有GC的,但是这个语言诞生的比较晚,所以,目前的主流游戏还是使用C++等开发。
说了这么多,让我们进入到C语言变量的学习吧!
变量是个什么东西呢?变量就是一块内存空间的别名。不过C语言中的内存地址的访问,不仅仅可以通过变量名字访问,还可以通过指针来访问。我们本次就介绍一下基本数据类型以及指针类型。大家坐好,开车了~
基本数据类型分为数值类型和字符类型,而数值类型则包括整型,实型;字符数据类型则是字符型。整形包括short,int,long,long long,而实型则包括float和double两种,字符型的包括char类型。这些数据类型是有大小限制的,首先呢,必须声明的是,千万千万不能有整型数据的溢出,这样会导致安全问题。还有就是浮点数的大小比较问题,绝对不是直接使用等号就可以解决的。
与基本数据类型对应的指针类型有:int*, char*, long*, float*, double*等等,这些数据类型代表的是指针,其实指针本质上是一种存放地址的数据类型,可以通过指针获得指针指向的内存空间的数据。
C语言中没有字符串,在C语言中是通过字符数组来模拟的字符串。C语言中的字符串就是以'\0'结尾的字符数组,而且C语言不支持字符串的直接相加减,必须通过特定的函数来操作,具体的函数在<string.h>头文件中可以找到,主要有strstr(查找子串),strcat(连接两个字符串), strcpy(进行字符串的拷贝)等等函数。
还有C语言中并没有bool类型,不过在C99中引入了bool类型,需要在<stdbool.h>头文件中找到他们的定义。
今天所要讲的知识点就这么多,希望大家能够消化好。我们下次再见~
C语言学习之路之基础变量的更多相关文章
- go语言学习之路 二:变量
说道变量,首先应该提一提关键字,因为不能把关键字当做变量来声明. 关键字: 下面列出GO语言的关键字或保留字: break default func interface select case def ...
- python学习之路-day2-pyth基础2
一. 模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,第三方库存放位置:site-packages sys模块简介 导入模块 import sys 3 sys模 ...
- 12天学好C语言——记录我的C语言学习之路(Day 11)
12天学好C语言--记录我的C语言学习之路 Day 11: 因为指针部分比较的难,所以我们花费的时间也是最长的,希望大家耐的住性子,多多理解,多多打代码.好了,废话不多说,来看第11天的学习. //编 ...
- 12天学好C语言——记录我的C语言学习之路(Day 10)
12天学好C语言--记录我的C语言学习之路 Day 10: 接着昨天的指针部分学习,有这么一个题目: //还是四个学生,四门成绩,只要有学生一门功课没及格就输出这个学生的所有成绩 /*//progra ...
- 12天学好C语言——记录我的C语言学习之路(Day 9)
12天学好C语言--记录我的C语言学习之路 Day 9: 函数部分告一段落,但是我们并不是把函数完全放下,因为函数无处不在,我们今后的程序仍然会大量运用到函数 //转入指针部分的学习,了解指针是什么 ...
- 12天学好C语言——记录我的C语言学习之路(Day 5)
12天学好C语言--记录我的C语言学习之路 Day 5: 第五天的学习开始了,今天我们主要对几个程序进行编写,让自己充分的熟练编程语言,大量的题目会让自己变的精炼.以一个程序(program 5.1) ...
- 12天学好C语言——记录我的C语言学习之路(Day 2)
12天学好C语言--记录我的C语言学习之路 Day 2: 我建议大家每一天学习之前都仅凭记忆去敲前一天敲过的最后一个程序,或者敲前一天你认为最难最长的一个程序,如果一晚上的睡眠之后不看书还能敲的出来, ...
- 12天学好C语言——记录我的C语言学习之路(Day 1)
12天学好C语言--记录我的C语言学习之路 Day 1: 刚刚入门C语言,那么肯定要先把什么是C语言和大家讲清楚,那么大家看下面一段程序(program 1.1): /*//program 1.1 ...
- Go语言学习之路
我关于Go语言的博客原本发布于我的个人网站:wwww.liwenzhouu.com.但是被某些人抄怕了,没办法只好搬运到博客园. 我的Go语言学习之路 2015年底我因为工作原因接触到了Go语言,那时 ...
随机推荐
- Jupyter Notebook的使用
命令模式 (按键 Esc 开启) Enter : 转入编辑模式 Shift-Enter : 运行本单元,选中下个单元 Ctrl-Enter : 运行本单元 Alt-Enter : 运行本单元,在其下插 ...
- 【[SDOI2016]生成魔咒】
这是一道\(SA\)的练手好题 建议做之前先去做一下2408 之后你就肯定会做这道题了 首先上面那道题的答案就是 \[\sum_{i=1}^nn+1-sa[i]-het[i]\] 就是对于每一个后缀求 ...
- ZooKeeper学习之路 (九)利用ZooKeeper搭建Hadoop的HA集群
Hadoop HA 原理概述 为什么会有 hadoop HA 机制呢? HA:High Available,高可用 在Hadoop 2.0之前,在HDFS 集群中NameNode 存在单点故障 (SP ...
- 关于mvn install命令执行报错问题
首先这个报错,通常要么是依赖问题,比如模块之间的依赖传递问题,通常报这种错误会在控制台提示. 或者是比如子工程分为test-entity.test-dao.test-service.test-web三 ...
- html5复习--canvas
一.简介 <canvas>是html5新增的标签,可以使用脚本(通常为JavaScript)在其中绘制图像的 HTML 元素.它可以用来制作照片集或者制作简单(也不是那么简单)的动画,甚至 ...
- N项阶乘累加求和新算法
pdf原版链接
- iOS裁剪,缩放图片白边问题解决办法
几年没来了,感觉还是要写点啥,以后碰见问题 解决就写这吧,当是一个随时的笔记也好. iOS裁剪,缩放图片的代码网上也很多了,但是笔者出现了右边和下边出现白边的情况.出现白边的原因是给的size中的CG ...
- C++重载运算符练习--对people类重载“= =”运算符和“=”运算符
题目描述 对people类重载“= =”运算符和“=”运算符,“==”运算符判断两个people类对象的id属性是否相等:“=”运算符实现people类对象的赋值操作. 代码如下 #include&l ...
- 在windows上安装不同(两个)版本的Mysql数据库
1.起因: 需要导入一个sql文件,发现死活导不进去.当执行到这一句时,就有问题.经过一番搜索,原来是我的数据库版本(原先Mysql版本5.5)低了,而支持该语句的版本应该是至少要5.7.那我索性就去 ...
- 三星S5-PV210内存初始化
一.S5PV210时钟系统 时钟:一定频率的电信号. 时钟系统:基于CMOS工艺的高性能处理器时钟系统,集成PLL可以从内部触发,比从外部触发更快且更准确,能有效地避免一些与信号完整性相关的问题. ...