家中小女初上大学开学计算机课程,学习C语言时遇到困难,为帮助她尽快入门,特写了这篇基本概念理解,希望帮她快速认识清楚C语言的本质。发到博客园上,也帮助同样的C语言初学者轻松掌握C语言的本质。

程序运行过程

  • 程序员写完代码后,先交给编译链接程序编译成机器代码。
  • 机器代码程序可由执行程序(操作系统或执行程序(如java的jvm虚拟机) )来运行

c语言执行程序操作对象

  1. 代码语句。如 int a=1+2;
  2. ​数值。如3.14、“h”、"26"等整数或小数或字符,执行程序可根据要求把这些数放入指定存储单元中,这称为赋值​
  3. 存储单元。如语句 int a1; a1=3; 这两句意思是首先在内存中申请4个字节大小的内存存储单元用于放置整数,然后在这个存储单元中放置整数数值3。我们把这些小存储单元称为变量,相当于盛放数值的容器。

注:存储单元根据放置数值的类型分为整数、小数、字符、指针等。用于放置内存地址的存储单元我们称之为指针变量

根据以上解释,c语言代码程序经编译后,执行程序执行代码语句时,操作对象只有两个,一个是存储单元,另一个是数值。数值是执行程序自己生成,无需程序员操心,因此程序员所关注的只有一个对象,即存储单元。因此可以说,c语言主要功能是用于操作存储单元赋值和取值的语言

什么是变量和变量名?

  • 变量的本质是在内存中申请的一小块存储单元,按申请类型决定大小;
  • 变量的用途其实是一个容器,它的作用在于可以起到一个临时存储数据。
  • 变量名是给变量起的名字,是给人类和编译程序看的,程序代码经编译程序编译后,变量名就会消失。因为执行程序不需要变量名

什么是常量和常量名

  • 常量本质是个不会改变的数据值,可以命名以方便操作和识别
  • 常量名是给常量起的名字,是给人类和编译程序看的。习惯上常量名称使用大写定义

常量与变量的​区别

  • 常量因为是数值,所以定义时必须要有初始值,而且值不允许被修改,
  • 变量因为是个存储单元,所以无初始值,但定义时可同时赋值,以后可以多次赋值。

后记:学习离不开上网查阅资料记录笔记,为方便记录网页资料记录笔记,本人为chrominmu类浏览器如chrome、edge等开发了个名为网风笔记的扩展插件,可方便帮助采撷记录网页的文章、段落、图片、多媒体等,并提供文章管理后台以方便整理收藏。特别是针对某sdn,某网页图书馆等限制复制的网页有良好的辅助作用。除此之外,网风笔记还有音视频下载、截图涂鸦、一键提取文章、自由点选段落、快捷打印成A4格式文档、网页笔记编辑整理、定向发布等等功能,可以说是喜欢网上学习采集资料的好帮手,现免费提供给大家使用。喜欢的朋友可自行百度搜索下网风笔记安装使用。

c语言基础理解(原创)的更多相关文章

  1. 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(下)

    索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 五.透视.逆透视及分组 5.1 透视 所谓透视( ...

  2. 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(上)

    索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 一.SQL Server体系结构 1.1 数据库 ...

  3. R语言基础:数组&列表&向量&矩阵&因子&数据框

    R语言基础:数组和列表 数组(array) 一维数据是向量,二维数据是矩阵,数组是向量和矩阵的直接推广,是由三维或三维以上的数据构成的. 数组函数是array(),语法是:array(dadta, d ...

  4. OC语言基础知识

    OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...

  5. php面试题之三——PHP语言基础(基础部分)

    三.PHP语言基础 1. strlen( )与 mb_strlen( )的作用分别是什么(新浪网技术部) strlen和mb_strlen都是用于获取字符串长度. strlen只针对单字节编码字符,也 ...

  6. Object Pascal 语言基础

    Delphi 是以Object Pascal 语言为基础的可视化开发工具,所以要学好Delphi,首先要掌握的就是Object Pascal 语言.Object Pascal语言是Pascal之父在1 ...

  7. C#语言基础——7月21日

    C#语言基础 一.语言基础 (一).函数的四要素:      名称,输入,输出,加工(二).主函数.输出语句.输入语句:     Static void Main(string[] args)//下划 ...

  8. java语言基础02

    一.Java语言基础(常量的概述和使用)(掌握) 1:什么是常量 就是在程序的执行过程中其值不发生改变的量. 2:Java中常量的分类 (1):字面值常量 (2):自定义常量(面向对象部分讲解) 3: ...

  9. 李洪强iOS开发之OC语言基础知识

    OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...

  10. 【quick-cocos2d-x】Lua 语言基础

    版权声明:本文为博主原创文章,转载请注明出处. 使用quick-x开发游戏有两年时间了,quick-x是cocos2d-Lua的一个豪华升级版的框架,使用Lua编程.相比于C++,lua的开发确实快速 ...

随机推荐

  1. 通过linux-PAM实现禁止root用户登陆的方法

    前言 在linux系统中,root账户是有全部管理权限的,一旦root账户密码外泄,对于服务器而言将是致命的威胁:出于安全考虑,通常会限制root账户的登陆,改为配置普通用户登陆服务器后su切换到ro ...

  2. 快速上手Mybatis项目

    快速上手Mybatis项目 思路流程:搭建环境-->导入Mybatis--->编写代码--->测试 1.搭建实验数据库 CREATE DATABASE `mybatis`; USE ...

  3. HNOI2008GT考试

    题目链接 考虑dp,f(i,j)表示做到了第i位(共n位),当前的后缀串与A1~Aj相匹配 接下来的方案数.转移的话枚举一个k=0~9表示这位选什么,如果选了以后,匹配的位置会改变到 j' ,j'可以 ...

  4. 一篇了解全MVCC

    一.什么是MVCC MVCC,全称Multi-Version Concurrency Control,即多版本并发控制,是一种并发控制的方法,一般用在数据库管理系统中,实现对数据库的并发访问,比如在M ...

  5. AIR32F103(四) 27倍频216MHz,CoreMark跑分测试

    目录 AIR32F103(一) 合宙AIR32F103CBT6开发板上手报告 AIR32F103(二) Linux环境和LibOpenCM3项目模板 AIR32F103(三) Linux环境基于标准外 ...

  6. c++ 模板 指针类型偏特化

    一步步来,先简单点. 目标:我们要实现一个模板类,例化后,可以通过get_val获取到值,通过get_ptr获取到指针.具体什么意思结合例子来看看吧. 例子: struct A{ int data; ...

  7. 【红队技巧】Windows存储的密码获取

    [红队技巧]Windows存储的密码获取 免责声明: 使用前提 支持版本 利用方式 参考: 免责声明: 本文章仅供学习和研究使用,严禁使用该文章内容对互联网其他应用进行非法操作,若将其用于非法目的,所 ...

  8. 面试 个人摸底监测 考察考察JS三座⼤⼭ 1. 原型和原型链 2. 作⽤域与闭包 3. 异步和单线程 (第四天)

    01.如何判断⼀个变量是不是数组? let arr = [1,2,3,4] function fun(){ return arr instanceof Array } 02.如何使⽤class实现继承 ...

  9. Go语言核心36讲52

    你好,我是郝林. 专栏到这里,就要结束了. 差不多在半年以前(2018年的第二个季度),极客时间的总编辑郭蕾找到我,说想让我写一个关于Go语言的技术专栏. 我那时候还在轻松筹担任大数据负责人,管理着四 ...

  10. 8、将两个字符串s1,s2进行比较,如果s1>s2,则输出一个正数。如果s1 = s2,输出零。如果s1 < s2, 输出一个负数,不用strcmp函数,输出的正数或者负数的绝对值应该是比较两字符串相应字符的ascii码的差值。

    /* 将两个字符串s1,s2进行比较,如果s1>s2,则输出一个正数.如果s1 = s2,输出零.如果s1 < s2, 输出一个负数,不用strcmp函数,输出的正数或者负数的绝对值应该是 ...