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语言,那时 ...
随机推荐
- 唯品会RPC服务框架与容器化演进--转
原文地址:http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=405781868&idx=1&sn=cbb10d37e25 ...
- .NET Core 控制台项目中的Nuget打包类库及引用
由于使用的是MAC版本的VSCode,所以全部是通过dotnet命令来完成的. 1.dotnet new lib 创建类库项目: 2.编辑项目根目录下的.csproj文件,添加版本号(建议): < ...
- [李居丽][다이아몬드][Diamond]
歌词来源:http://music.163.com/#/song?id=484056974 作曲 : Damon Sharpe/JOHN HO/JEFF SHUM [作曲 : Damon Sharpe ...
- Latex排版全解
Latex排版全解 LATEX(英语发音:/ˈleɪtɛk/ LAY-tek或英语发音:/ˈlɑːtɛk/ LAH-tek,音译“拉泰赫”),是一种基于TEX的排版系统,由美国电脑学家莱斯利•兰伯特在 ...
- golang-gorm框架支持mysql json类型
gorm框架目前不支持Json类型的数据结构 http://gorm.book.jasperxu.com/callbacks.html 如在Mysql中定义了如下的表结构 CREATE TABLE ` ...
- Elasticsearch简单使用和环境搭建
Elasticsearch简单使用和环境搭建 1 Elasticsearch简介 Elasticsearch是一个可用于构建搜索应用的成品软件,它最早由Shay Bannon创建并于2010年2月发布 ...
- centos7 tengine 安装
Tengine是由淘宝网发起的Web服务器项目.它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性.Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检 ...
- 在任务管理器中显示所有CPU内核性能
在Windows7"任务管理器"的”性能“选项卡默认显示所有的CPU内核性能 在Windows10中可以通过设置来实现效果
- Vmware10组建局域网
Vmware10组建局域网很简单,特别是用Ubuntu16.04作为操作系统,基本上按照如下步骤来,是不会出现问题的. 1.首先,启动虚拟机,选择“编辑”->“虚拟网络编辑器” 2.改为桥接模式 ...
- .Net操作Excel公式实现
//传入Excel公式,获取公式计算结果private string GetValue(string formula) { string result = ""; try { Ob ...