我们讨论的顺序是这样的,首先,我抛出一个问题,计算机语言究竟是什么,我们不谈什么高级语言,中级语言,低级语言,我们就说计算机语言,这个语言是我们与计算机沟通的桥梁,和人类语言一样,是两个人交流的工具,不过现在交流的双方由一方变为了计算机。我们写代码就是将我们要计算机做的任务告诉他,让他来执行,这个沟通的方式就是通过代码,然后我们再分析这个为什么计算机会听的懂计算机语言,因为我们写的代码这些头文件,这些框架,有我们写的代码的翻译,通过IDE编译之后,计算机才看得懂,这就是为什么我们要导入头文件,头文件说到本质就是一个翻译规则(虽然只是头文件的翻译和编译器的翻译不同,但是此处就先如此理解),这就是为什么一个简单的程序​源码构成需要导入头文件。1在之后,我们讨论了数据在计算机里面的存储,数据是如何存储的呢,计算机内存里全都是0和1,这么多0和1,是如何被翻译的?翻译规则是什么?那么我们先来说说是如何被翻译的,像一个英文句子一样,如果我们一口气写下来,中间不加空格,那我们就不容易将他翻译过来了,有空格标示出来,那就很简单了,那计算机中的数据在计算机里是没有空格的,我们为这些数据区分了不同的数据类型,这不同的数据类型有不同的长度,我们从开始的地方取出之后一定长度的数据,就是这一个单独的数据了,比如一个int整形占内存是4个字节,一个字节2位,就是8位,我们截取一段内存里的数据 00010100

0000 0010 01010 这样一串0和1,假如这个整形数据的开始位置为

第8位,长度为8,那么 我们把数据截取出来就是 0000

0010,这个整形数据的值就为2。所以我们知道获取数据要知道他的开始位置和他的长度,那就可以得到这个数据了。现在我们声明变量的时候,这个数据的长度就为已知了,但是其起始位置就不得而知了,这就是赋值的过程。接下来,我如果讲如何赋值的话,可能有初学者就会感觉断片了,因为虽然看起来没有什么跳跃性的,但是其实还是需要有一部分附加内容来帮助理解的。所以接下来,我给我朋友直接讲得指针。我朋友是有基础的,他知道指针是一个地址数据,计算机通过获取翻译出这个地址,再根据这个地址找到相应的数据。这样我就直接给他讲了指针存储在内存里形式,指针相对于基本数据类型是多了一些东西,但是说到底其实是翻译规则不同,指针的翻译分为两部分,一部分是他指向的数据的数据类型,另一部分是他指向数据的地址,为什么加入这个指针数据类型,就是为了提高计算机的处理速度,然后另一方面也提高写代码的效率。而基本数据类型和指针对比,基本数据类型就直接是数据的地址。总的来看,机器获取基本数据类型,和获取指针地址的时候,不同的是,多了一步通过地址找地址再获取数据的过程,虽然降低了计算效率,但是这简单的一步就给了我们更多的可能性,包括我们以后要讲得结构体,面向对象当中的对象,真的是很强大。

c语言基础变量,C语言基础-第一篇-变量相关推荐

  1. 【lua语言从青铜到王者】第一篇:lua前世今生

    前言 哈喽,大家好,我是阿沐童鞋!一个喜欢钻研各种新技术的程序员,哎哎呀,就是玩!!! 前两天我开通了lua语言学习专栏,虽然在掘金社区没多少小伙伴看,但是突然在知乎上了推荐,"火" ...

  2. 【一文讲解深度学习】语言自然语言处理(NLP)第一篇

    [一文讲解深度学习]语言自然语言处理(NLP) 博主介绍 自然语言处理概述 NLP 的定义 NLP的主要任务 分词 词义消歧 识别物体识别(NER) 词性标注(PoS) 文本分类 语言生成 问答(QA ...

  3. C语言单元测试框架详解:第一篇

    目录 一.单元测试定义 二.C语言单元测试框架汇总 三.C语言测试推荐书籍 一.单元测试定义 单元测试是指对软件中的最小可测试单元进行检查和验证,如C语言中单元指一个函数,Java里单元指一个类.单元 ...

  4. C语言学习——从零开始学编程(第一篇:Visual Studio的下载和第一个C语言程序)

    小颖的话: 也许有很多的小伙伴们和小颖一样,曾在玩着马里奥,贪吃蛇,或者打着植物打僵尸的时候想着这些游戏是怎么运作的❓

  5. 第一篇第一章燃烧的基础知识

    2019/1/3 [录播]2018一消精华班-实务-一级消防工程师-环球网校 http://v.edu24ol.com/?type=lesson&id=178941&gid=16157 ...

  6. 语义分析程序 c语言,语义分析的C语言代码

    之前写了12篇使用有限自动机(DFA)分析语法的文章,今天说一下语义分析. 怎么用C语言写语法分析3,基于有限自动机的表达式分析 怎么用C语言写语法分析 用C语言实现一个真正的词法分析器 语义分析,也 ...

  7. c语言 pow优化_C语言性能优化

    1.基本优化 (1)全局变量 全局变量绝不会位于寄存器中.使用指针或者函数调用,可以直接修改全局变量的值.因此, 编译器不能将全局变量的值缓存在寄存器中,但这在使用全局变量时便需要额外的(常常是不必要 ...

  8. java定义基础变量语句_编程语言第一:JAVA语言基础,变量

    在前面的几篇文章中我们介绍了Java的运行环境,以及Eclipse IDE的安装与使用.从今天开始我们的文章开始介绍Java开发语言的基础知识.今天主要介绍Java变量. 一.什么是变量 变量是指代在 ...

  9. Go 语言快速开发入门(基础语法详解,第一节)

    Go 语言快速开发入门(基础语法详解,第一节) 一.基础语法详解,第一节 1.HelloWorld 1.1.代码编写和解释 1.2.go语言注意事项 2.Go 语言的转义字符&&Go ...

最新文章

  1. 遗传算法实例-求解函数极值
  2. 如果在系统里面无法格式化磁盘可以尝试以下方法
  3. [EffectiveC++]item21:Don't try to return a reference when you must return an object
  4. python pcm 分贝_语音文件 pcm 静默(静音)判断
  5. linux socket recv函数如何判断收完一包_linux 下经典 IO 复用模型 epoll 的使用
  6. java学习(137):java异常初识
  7. 森林病虫防治系统 (十)
  8. 如何成为一名优秀的web前端工程师(前端攻城师)
  9. 如何在MySQL中重置AUTO_INCREMENT?
  10. ros indigo 学习笔记
  11. Face++ AI换脸
  12. WIN10系统 Indirect Display 虚拟显示器之特殊应用
  13. 基于FPGA的波束形成verilog开发
  14. flv 文件格式详解
  15. zoj 3141 - nie's Dog Biscuits
  16. Android视频列表自动播放功能
  17. 必应暗藏戏精模式,拿捏名人说话语气口头禅!官方还自推三种个性供挑选
  18. 阿里龙蜥centos8.4 postgis 源码安装
  19. js 获取汉字首字母和汉字转拼音
  20. mysql数据备份及完全卸载

热门文章

  1. J2SE的30个基本概念
  2. 多线程之失败自动重试机制
  3. Oracle——redo+undo总结
  4. All about OpenGL ES 2.x – (part 2/3)(转载)
  5. golang 1.18 新增泛型 简介
  6. python3 调用字符串对应的函数
  7. python3 字符串 列表 字典 转换
  8. linux c 复制拷贝文件
  9. linux ls 命令只显示目录和只显示文件
  10. python3 问题 No module named _sqlite3 解决方案