数据、常量和变量 2014-3-19总结

2023-11-09


今天学习了数据、常量和变量。


一、数据

数据分为两种:静态数据和动态数据。

1、静态数据

1)概念:静态数据是指一些永久性的数据,硬盘内存比较大,所以一般的存储在硬盘中。

2)存储的时长:计算机关闭之后再开启,这些数据依旧还在,只要你不主动删掉或者硬盘没坏,这些数据永远都在。

3)哪些是静态数据:静态数据一般是以文件的形式存储在硬盘上,比如文档、照片、视频等。

2、动态数据

1)概念:动态数据指在程序运行过程中,动态产生的临时数据,一般存储在电脑内存中。

2)存储的时长:计算机关闭之后,这些临时数据就会被清除。

3)哪些是动态数据:当运行某个程序(软件)时,整个程序就会被加载到内存中,在程序运行过程中,会产生各种各样的临 时数据,这些临时数据都是存储在内存中的。 因为是内存的访问速度比硬盘快N倍,所以应用程序加载到硬盘中去执行。

3、静态数据到动态数据的转换

静态数据到动态数据的转换:暴风影音 —> 计算机内存  <— 硬盘中内容(这里用的老师图)

                            


4、数据的大小

1)不管是静态还是动态数据,都是有0和1组成的。

2)1 Byte = 8bit , 1kb = 1024b , 1mb = 1024kb,1GB=1024MB ,1TB=1024GB      


二、常量和变量

C语言数据类型图(这里用的是老师的图)

                          


1、常量分类

1)整型常量(int)
即int类型的数据,包括了所有的整数 

2)浮点型常量(float\double):分为double和float两种数据类型
a)double:双精度浮点型,就是小数。如5.43、-2.3、0.0等,注意,0.0也算是个小数。
b)float:单精度浮点型,也是小数,比double的精确程度低,也就是说所能表示的小数位数比较少。
为了跟double区分开                来,float 型数据都是以f结尾的,比如5.43f、-2.3f、0.0f


 3)字符常量(char)
一个数字(0~9)、英文字母(a~z、A~Z)或者其他符号(+、-、!、?等)用单引号括起来,构成字符常量,            '6'、'a'、'F'、'+'、'$'等。

注意:单引号只能括住1个字符,而且不能是中文字符,下面的写法是错误的:'abc'、'123456'、'男'


 4)字符串常量
将一个或者多个字符用双引号("")括起来,就是字符串常量。如"6"、"男"、printf("Hello World");语句中的"HelloWorld"也是字符串常量。


2、变量

1)定义变量的目的:在内存中分配一块存储空间给变量,方便以后存储数据。
下面描述不同编译器下各种变量占的字符空间(单位:字节)

                                                       


2)变量的赋值

/*
1.变量的定义:变量类型   变量名
              int     score
2.变量的赋值
 scare = 100;
 scare = a;
 scare = b = 100;
 
 变量的输出
 int a = 200;
 printf("%i",a);
 常用格式符:
 1>%d\%i   整数(int)
 2>%f      小数(float、double)
 3>%c      字符(char)
*/


#include <stdio.h>

int main(int argc, const char * argv[])
{
    //这里表示 a赋值给b,然后30又赋值给b,所以b的值改变,a的值不变
    int a = 10;
    int b = 20;
    b = a;
    b = 30;
    
    //%d是一个格式符(占位符)
    printf("a = %d\n  b = %d\n",a , b);
    
    float height = 1.78f;
    
    //%f用来输出小数,默认是6位小数
    printf("身高是%.2f\n",height);
    
    char scoreGrade = 'D';
    
    //%c用来输出字符
    printf("积分等级是%c\n",scoreGrade);
    return 0;
}


3)变量在函数中得作用域

/*
 1.作用域(作用范围)
 从定义变量的那行代码开始,已知到函数结束
 */

#include <stdio.h>

int test()
{
    int score = 200;
    return 0;
}

int main(int argc, const char * argv[])
{
    int score;
    
    test();//这里调用完test函数之后,里面的score内存就消失了, 
    
    score = 100;
    
    printf("score = %d\n",score);
    return 0;
}



4)变量在代码块中得作用域

/*
1.代码块的作用:手机内存有限,为了提高手机内存的及时释放,为了提升性能。
2.变量的作用域:从定义变量的哪一行代码开始,一直到所在的代码块结束
 */
#include <stdio.h>

int main(int argc, const char * argv[])
{
    /*{
        int a = 10;//这里的代码块只能在这个{}中有效使用,其作用域是不能逃出此{}
    }//这个}执行代表这块{}函数执行完毕,将在内存中被释放消失
    printf("a = %d",a);//所以这里的printf函数不能使用变量a
    */
    int  score = 100;
    
    {
        int score = 200;
        {
            int score = 50;//这样函数输出结果score =200 ,score = 100
           /* score = 50;//这将score赋值改变为50,这样函数输出是score = 50 ,score =100  */
        }
        printf("score = %d",score);//这里能调用外面的score变量(注释此代码块中的int score做实验),但是因为代码块存在,所以这里的printf输出采取就近原则,而不是给score赋值两次,(如果赋值两次,那么第二个printf输出也是200,但结果是100,充分证明了代码块中的就近原则)
    }
    
    printf("score = %d",score);
    return 0;
}


5)练习题

//交换整形变量a、b的值。比如a = 10、b = 11;交换之后a的值是11,b的值是10,用两种方式实现


#include <stdio.h>

int main(int argc, const char * argv[])
{
    
    //1、利用第三方变量(工作)
    /*int a = 10 ,b = 11;
    int temp;
    
    temp = a;
    a = b;
    b = temp;*/
    
    //2、不利用第三方变量交换a、b的值(面试,有印象)
    int a = 10 ,b = 11;
    
    a = b - a;
    b = b - a;
    a = b + a;
    
    printf("a = %d,b = %d",a ,b);
    return 0;
}




本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据、常量和变量 2014-3-19总结 的相关文章

随机推荐

  • 听说你Pycharm都不会用?这篇快速上手指南你必须拥有!

    0 前言 大家好 欢迎来到今天的基础入门编辑器Pycharm的使用篇 Pycharm 作为一款针对 Python 的编辑器 配置简单 功能强大 使用起来省时省心 对初学者友好 这也是为什么编程教室一直推荐新手使用 Pycharm 的原因 本
  • CTF之逆向之阿里巴巴

    题目地址 http www shiyanbar com ctf 13 题目预览 解题过程 1 下载附件发现是exe文件 2 使用PEid和Detect It Easy查壳 和 开发语言 发现没有加壳 都是用C 开发的 3 C 和Java P
  • 打开方式中选择默认方式无反映_系统小技巧:找回丢失的文件“打开方式”

    无论你在使用最经典的Windows 7 还是最主流的Windows 10 当某种文档可以用多个不同程序打开时 在文件的右键菜单中会出现 打开方式 的菜单项 从中可选择打开文档的程序 但有时我们会发现 明明程序在电脑中并未被卸载 但右键菜单中
  • 腾讯云域名解析

    腾讯云域名解析 外链图片转存失败 img 7ZtbvWq2 1562133684211 http shp qpic cn txdiscuz pic 0 bbs qcloud com common cf 163844rpqz5g6g6p6qf
  • 动态代理步骤

    实现动态代理的步骤 1 创建接口 定义目标类要完成的方法 2 创建目标类实现接口 3 创建InvocationHandler接口的实现了类 在invoke方法中完成代理类的功能 1 调用目标方法 2 增强功能 4 使用Proxy类的静态方法
  • jdk动态代理与CGLib的区别

    昨天被人问及动态代理与CGlib的区别 赶紧回顾一下 什么是代理 静态代理与动态代理 静态代理实例 JDK动态代理实例 CGLib 简介 CGLib 与JDK动态代理的区别 代理模式是Java中常见的一种模式 英文名字叫走Proxy或者Su
  • 基于 TiDB 的 Apache APISIX 高可用配置中心的最佳实践

    项目背景 什么是 Apache APISIX API 网关作为微服务架构中的重要组件 是流量的核心出入口 用于统一处理和业务相关的请求 可有效解决海量请求 恶意访问等问题 保障业务安全性与稳定性 作为开源的云原生 API 网关 Apache
  • SQL Server Powershell 开源数据库管理工具 dbatools

    在 Windows 中开发自动化运维 除了 python 就是 powershell了 powershell 与 windows 相关产品关联紧密 Windows 环境下的自动化开发一般使用 powershell sql server 亦是
  • 高效液相色谱分析的基本原理

    一 高效液相色谱分析法 百度百科 高效液相色谱以经典的液相色谱为基础 是以高压下的液体为流动相的色谱过程 通常所说的柱层析 薄层层析或纸层析就是经典的液相色谱 所用的固定相为大于100um 的吸附剂 硅胶 氧化铝等 这种传统的液相色谱所用的
  • Dubbo 3.x源码(10)—Dubbo初始化导出/引用模块配置源码

    基于Dubbo 3 1 详细介绍了Dubbo初始化导出 引用模块配置的源码 此前我们学习了Dubbo配置的加载与覆盖的一系列源码 Dubbo 3 x源码 7 Dubbo配置的加载入口源码 Dubbo 3 x源码 8 Dubbo配置中心的加载
  • JeecgBoot Vue2前端国际化语言切换

    JeecgBoot antd Vue2前端国际化语言切换 jeecg官方文档 参考 jeecg前端的国际化解决方案 参考 一 需求场景 后台管理系统 放置一个中英文切换选择按钮 页面切换所选语言后 系统会重新加载 获取对应的语言数据 并且下
  • Git 的origin和master分析

    lt lt 关键是 中英文切换着打字太辛苦了转载请注明出处 gt gt http lishicongli blog 163 com blog static 1468259020132125247302 首先要明确一点 对git的操作是围绕3
  • ArcGIS Maritime Server 开发教程(三)Maritime Service 功能解读

    ArcGIS Maritime Server 开发教程 三 Maritime Service 功能解读 本章导读 ArcGIS Maritime Server 能够以极简的方式发布海图服务 其服务的标准与传统的 MapService 对齐
  • 小白数学建模模型入门(二)

    数学建模模型入门 二 1 图论模型 Dijkstra算法 应用于求初始点到其他所有顶点的最短路径 本质是一种标号法 给赋权图的每一个顶点记一个数 称为顶点的标号 临时标号 称T标号 固定标号 称为P标号 T标号表示从始顶点到该标点的最短路长
  • The last packet sent successfully to the server was 0 milliseconds ago

    今天在弄数据库迁移及部署到客户服务器时 发现启动成功了 但是数据请求超时 赶紧打开日志看一下 报了这样的错 The last packet sent successfully to the server was 0 milliseconds
  • &和&&的区别(单与和双与的区别)

    和 都可以用作逻辑与的运算符 为短路与 不是短路与 可以作为整数的位运算符 举两个例子 1 对于if str null str equals 这个表达式 当str null 时 后面的表达式就不会执行 也不会出现NullPointerExc
  • 跨平台编程开发工具Xojo 2023 Release mac中文版功能介绍

    Xojo mac是一款跨平台的软件开发工具 它允许开发人员使用一种编程语言来创建应用程序 然后可以在多个操作系统上运行 Xojo 2023是Xojo开发工具的最新版本 它提供了许多功能和改进 以帮助开发人员更轻松地构建高质量的应用程序 Xo
  • 转载super resolution 超分辨率 的一些论文和代码

    1 CVPR 2019 神奇的超分辨率算法DPSR 应对图像模糊降质 code 2 从SRCNN到EDSR 总结深度学习端到端超分辨率方法发展历程 3 超分辨率在人脸识别中的工业应用 商汤算法一骑绝尘 打造公安人脸识别智能核心 4 人脸超分
  • linux开放端口命令tcp,linux开放端口命令

    linux系统中控制端口的开启与关闭可以由命令来执行 下面由学习啦小编为大家整理了linux下开放端口命令的相关知识 希望对大家有所帮助 linux开放端口命令1 打开指定端口 sbin iptables I INPUT p tcp dpo
  • 数据、常量和变量 2014-3-19总结

    今天学习了数据 常量和变量 一 数据 数据分为两种 静态数据和动态数据 1 静态数据 1 概念 静态数据是指一些永久性的数据 硬盘内存比较大 所以一般的存储在硬盘中 2 存储的时长 计算机关闭之后再开启 这些数据依旧还在 只要你不主动删掉或