c语言基础理解(原创)
家中小女初上大学开学计算机课程,学习C语言时遇到困难,为帮助她尽快入门,特写了这篇基本概念理解,希望帮她快速认识清楚C语言的本质。发到博客园上,也帮助同样的C语言初学者轻松掌握C语言的本质。
程序运行过程
- 程序员写完代码后,先交给编译链接程序编译成机器代码。
- 机器代码程序可由执行程序(操作系统或执行程序(如java的jvm虚拟机) )来运行
c语言执行程序操作对象
- 代码语句。如 int a=1+2;
- 数值。如3.14、“h”、"26"等整数或小数或字符,执行程序可根据要求把这些数放入指定存储单元中,这称为赋值
- 存储单元。如语句 int a1; a1=3; 这两句意思是首先在内存中申请4个字节大小的内存存储单元用于放置整数,然后在这个存储单元中放置整数数值3。我们把这些小存储单元称为变量,相当于盛放数值的容器。
注:存储单元根据放置数值的类型分为整数、小数、字符、指针等。用于放置内存地址的存储单元我们称之为指针变量
根据以上解释,c语言代码程序经编译后,执行程序执行代码语句时,操作对象只有两个,一个是存储单元,另一个是数值。数值是执行程序自己生成,无需程序员操心,因此程序员所关注的只有一个对象,即存储单元。因此可以说,c语言主要功能是用于操作存储单元赋值和取值的语言
什么是变量和变量名?
- 变量的本质是在内存中申请的一小块存储单元,按申请类型决定大小;
- 变量的用途其实是一个容器,它的作用在于可以起到一个临时存储数据。
- 变量名是给变量起的名字,是给人类和编译程序看的,程序代码经编译程序编译后,变量名就会消失。因为执行程序不需要变量名
什么是常量和常量名
- 常量本质是个不会改变的数据值,可以命名以方便操作和识别
- 常量名是给常量起的名字,是给人类和编译程序看的。习惯上常量名称使用大写定义
常量与变量的区别
- 常量因为是数值,所以定义时必须要有初始值,而且值不允许被修改,
- 变量因为是个存储单元,所以无初始值,但定义时可同时赋值,以后可以多次赋值。
后记:学习离不开上网查阅资料记录笔记,为方便记录网页资料记录笔记,本人为chrominmu类浏览器如chrome、edge等开发了个名为网风笔记的扩展插件,可方便帮助采撷记录网页的文章、段落、图片、多媒体等,并提供文章管理后台以方便整理收藏。特别是针对某sdn,某网页图书馆等限制复制的网页有良好的辅助作用。除此之外,网风笔记还有音视频下载、截图涂鸦、一键提取文章、自由点选段落、快捷打印成A4格式文档、网页笔记编辑整理、定向发布等等功能,可以说是喜欢网上学习采集资料的好帮手,现免费提供给大家使用。喜欢的朋友可自行百度搜索下网风笔记安装使用。
c语言基础理解(原创)的更多相关文章
- 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(下)
索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 五.透视.逆透视及分组 5.1 透视 所谓透视( ...
- 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(上)
索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 一.SQL Server体系结构 1.1 数据库 ...
- R语言基础:数组&列表&向量&矩阵&因子&数据框
R语言基础:数组和列表 数组(array) 一维数据是向量,二维数据是矩阵,数组是向量和矩阵的直接推广,是由三维或三维以上的数据构成的. 数组函数是array(),语法是:array(dadta, d ...
- OC语言基础知识
OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...
- php面试题之三——PHP语言基础(基础部分)
三.PHP语言基础 1. strlen( )与 mb_strlen( )的作用分别是什么(新浪网技术部) strlen和mb_strlen都是用于获取字符串长度. strlen只针对单字节编码字符,也 ...
- Object Pascal 语言基础
Delphi 是以Object Pascal 语言为基础的可视化开发工具,所以要学好Delphi,首先要掌握的就是Object Pascal 语言.Object Pascal语言是Pascal之父在1 ...
- C#语言基础——7月21日
C#语言基础 一.语言基础 (一).函数的四要素: 名称,输入,输出,加工(二).主函数.输出语句.输入语句: Static void Main(string[] args)//下划 ...
- java语言基础02
一.Java语言基础(常量的概述和使用)(掌握) 1:什么是常量 就是在程序的执行过程中其值不发生改变的量. 2:Java中常量的分类 (1):字面值常量 (2):自定义常量(面向对象部分讲解) 3: ...
- 李洪强iOS开发之OC语言基础知识
OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...
- 【quick-cocos2d-x】Lua 语言基础
版权声明:本文为博主原创文章,转载请注明出处. 使用quick-x开发游戏有两年时间了,quick-x是cocos2d-Lua的一个豪华升级版的框架,使用Lua编程.相比于C++,lua的开发确实快速 ...
随机推荐
- 2.ElasticSearch系列之集群权限认证
1. 在master节点上创建秘钥库 export ES_PATH_CONF="/home/elasticsearch/config" && /usr/local/ ...
- 5.RabbitMQ系列之headers交换器
headers exchange是根据消息header值而不是routing key将消息路由到队列的交换器. 生产者在消息头中以键值对的形式添加一些值,并将其发送到headers exchange, ...
- mybatis-plugin插件执行原理
mybatis-plugin插件执行原理 今天主要是在看mybatis的主流程源码,其中比较感兴趣的是mybatis的plugin功能,这里主要记录下mybatis-plugin的插件功能原理. pl ...
- 微信小程序专题(二)-----微信openid的获取
一,简单来讲就是以下流程 通过get方式获取信息 在前端调用wx.login() 获取 临时登录凭证code之后,将code字符串发送给后端,后端通过auth.code2Session接口获取用户唯一 ...
- winscp报错Server sent passive reply with unroutable address. Using server address instead
找了一堆没用. 最后终于 1.使用winSCP连接ftp时,编辑会话,单击高级. 2.进入高级设置之后,单击连接,查看连接模式,把被动模式的勾,勾掉. 3.单击确定,然后保存配置,重新连接FTP,OK
- Linux crontab定时任务设置
1.检查是否安装了crontab # rpm -qa | grep crontab 2.重启crontab服务 一定重启,这样确保了crontab服务的开启 # /etc/init.d/crond r ...
- el-form-item label中的字体样式设置格式
1.设置前的代码 <el-form-item label="管理员密码" prop="password" > <el-input type=& ...
- 记录一次成功反混淆脱壳及抓包激活app全过程
记录一次成功反混淆脱壳及抓包激活app全过程 前言 近期接到一个需求,要对公司之前开发的一款app进行脱壳.因为该app是两年前开发的,源代码文件已经丢失,只有加壳后的apk文件,近期要查看其中一 ...
- 齐博x1文本代码标签的使用
文本标签虽然简单,但是使用的地方确实非常多的. {qb:tag name="XXXX" type="text"}推荐新闻{/qb:tag} 类似这种使用的频率是 ...
- 👍SpringSecurity单体项目最佳实践
SpringSecurity单体项目最佳实践 到这里,我们的SpringSecurity就已经完结啦,文章中可能有些地方不能做到全面覆盖,视频教程地址 初始项目地址 完成项目地址 1.搭建环境 建议下 ...