精华内容
下载资源
问答
  • 实例分析 类型变量的关系,运行如下代码 #include "stdio.h" int main() { char c =0; short s =0; int i = 0; printf("%d,%d\n",sizeof(char),sizeof(c));//1 1 printf("%d,%d\n",sizeof(short),sizeof(s));//2 2...

    1.什么是数据类型?

    数据类型可以理解为固定内存大小的别名,如下图
    在这里插入图片描述

    2.变量的本质是什么?

    变量的本质一个名字,什么样的名字?
    变量是一段实际连续存储空间的别名
    指针也是一个变量,只不过这个变量名存储的是另一个变量的地址。
    有了这些名字,即变量名,我们就可以很容易来操作一段内存空间了。
    下图的p就是一个指针变量,i、j、k为int类型的变量,四字节大小。
    在这里插入图片描述

    3.实例分析

    类型与变量的关系,运行如下代码

    #include "stdio.h"
    
    int main()
    {
        char c =0;
        short s =0;
        int    i = 0;
    
        printf("%d,%d\n",sizeof(char),sizeof(c));//1 1
        printf("%d,%d\n",sizeof(short),sizeof(s));//2 2
        printf("%d,%d\n",sizeof(int),sizeof(i));//4 4
    
    	return 0;
    }
    

    结果如下:
    也再次验证了,在C语言里面,数据类型是内存大小的别名,变量名是一段连续存储空间的名字。
    类型可以用来创建变量,且变量的大小跟这个类型代表的内存大小是一致的。
    在这里插入图片描述
    继续验证,我们使用typedef来定义三种新的数据类型

    #include "stdio.h"
    
    typedef int INT32;
    typedef unsigned char BYTE;
    typedef struct
    {
        BYTE b1;//1
        BYTE b2;//1
        short s;//2
        INT32 i;//4
    } NB;
    
    int main()
    {
        INT32 i32;
        BYTE b;
        NB   nb;
    
        printf("%d,%d\n",sizeof(INT32),sizeof(i32));//4 4
        printf("%d,%d\n",sizeof(BYTE),sizeof(b));//1 1
        printf("%d,%d\n",sizeof(NB),sizeof(nb));//8 8
    
    	return 0;
    }
    
    
    
    

    运行结果如下所示,结果也是预料之内的。
    在这里插入图片描述

    4.小结

    1)数据类型代表需要占用的内存大小
    2)变量的本质是一段内存的别名
    3)变量隶属于某一种数据类型
    4)变量所在的内存大小取决其所属的数据类型

    展开全文
  • 变量和数据类型的关系在现实中,旅店的服务人员会询问要住什么样的房间,如:单人间、双人间、总统套间;然后,根据选择的房间类型,服务员会安排合适的房间。先开房间,后住 其实就描述了数据存入内存的过程。首先...
    ac408f59f6697ea66969e79b51b45123.png

    计算机的内存类似于人的大脑,计算机使用内存来记忆大量运算时要使用数据。内存是一个物理设备,如何来存储一个数据呢?很简单,把内存想象成一间旅馆,要存储的数据就好比要住宿的客人。

    变量和数据类型的关系

    在现实中,旅店的服务人员会询问要住什么样的房间,如:单人间、双人间、总统套间;然后,根据选择的房间类型,服务员会安排合适的房间。先开房间,后住 其实就描述了数据存入内存的过程。


    首先,根据数据类型的类型为它在内存中分配一块空间(即找一个合适的房间),然后数据就可以放进这个空间(即入住)。

    那么为什么对存储空间有要求呢?试想有3个客人,服务员就安排了一个人单人间,这能入住吗?分配的空间过小,会导致数据无法存储。

    数据被存储在内存中,目的是便于在需要时取出来使用,或者如果这个数据被改变了,内存中存储的值也会随之相应的更新,以便下次使用新的数据。

    变量与房间的对应关系

    ba742412eb159b1806d6b522642ee00d.png

    通过变量名可以简单快速的找到存储数据。将指定给变量,就是将数据存储到以别名为变量名的那个房间;调用变量,就是将那个房间中的数据取出来。可见,变量是存储数据的一个基本单元,不同的变量相互独立。

    变量的声明和使用

    1)声明变量,即“根据数据类型在内存重申请一块空间”,这里需要给变量名

    语法:数据类型 变量名

    1234double money;int age;boolean sex;float score;

    2)给变量赋值,即“将数据存储至对应的内存空间”

    语法:变量名 值

    1234money = 20.5;age = 18;sex = true;score = 80.8F;

    这样的分解步骤有点繁琐,也可以将步骤(1)(2)合二为一,在声明一个变量的同时给变量赋值。

    语法:数据类型 变量名 = 值

    1234double money = 20.5;int age = 18;boolean sex = true;float score = 80.8F;

    3)调用变量。使用存储的变量,我们称之为“调用变量”。

    12345//从控制台输出变量的值System.out.println(money);System.out.println(age);System.out.println(sex);System.out.println(score);

    另外,需要注意的是:变量都必须声明和赋值之后才能使用

    以上就是今天的分享啦~

    如果大家有问题或者想了解更多的

    技术干货可以私信发送【微信】加朗妹儿微信哟~

    展开全文
  • Python变量和数据类型一、整数int = 20print intprint 45678 + 0x12fd2二、浮点数float = 2.3print float三、字符串a、使用单引号(')用单引号括起来表示字符串,例如:str = 'this is string'print strb、使用双引号...

    Python变量和数据类型

    一、整数int = 20

    print int

    print 45678 + 0x12fd2

    二、浮点数float = 2.3

    print float

    三、字符串a、使用单引号(')

    用单引号括起来表示字符串,例如:

    str = 'this is string'

    print str

    b、使用双引号(")

    双引号中的字符串与单引号中的字符串用法完全相同,例如:

    str = "this is string";

    print str

    c、使用三引号(''')

    利用三引号,表示多行的字符串,可以在三引号中自由的使用单引号和双引号,例如:

    str = '''this is string

    this is pythod string

    this is string'''

    print str

    四、布尔值and:与运算,只有所有都为True,and运算结果才是True。

    or:或运算,只要其中有一个为True,or运算结果就是True。

    not:非运算,它是一个单目运算符,把True变成False,False 变成True。

    bool = False

    print bool

    bool = True

    print bool

    五、空值空值是Python里一个特殊的值,用None表示。

    None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

    六、列表# -*- coding:utf-8 -*-

    lst = ['A', 'B', 1996, 2017]

    nums = [1, 3, 5, 7, 8, 13, 20]

    # 访问列表中的值

    print "nums[0]:", nums[0] # 1

    print "nums[2:5]:", nums[2:5] # [5, 7, 8]

    print "nums[1:]:", nums[1:] # [3, 5, 7, 8, 13, 20]

    print "nums[:-3]:", nums[:-3] # [1, 3, 5, 7]

    print "nums[:]:", nums[:] # [1, 3, 5, 7, 8, 13, 20]

    # 更新列表

    nums[0] = "ljq"

    print nums[0]

    # 删除列表元素

    del nums[0]

    '''nums[:]: [3, 5, 7, 8, 13, 20]'''

    print "nums[:]:", nums[:]

    # 列表脚本操作符

    print len([1, 2, 3]) # 3

    print [1, 2, 3] + [4, 5, 6] # [1, 2, 3, 4, 5, 6]

    print ['Hi!'] * 4 # ['Hi!', 'Hi!', 'Hi!', 'Hi!']

    print 3 in [1, 2, 3] # True

    for x in [1, 2, 3]:

    print x, # 1 2 3

    # 列表截取

    L = ['spam', 'Spam', 'SPAM!']

    print L[2] # 'SPAM!'

    print L[-2] # 'Spam'

    print L[1:] # ['Spam', 'SPAM!']

    # 列表函数&方法

    lst.append('append') # 在列表末尾添加新的对象

    lst.insert(2, 'insert') # 将对象插入列表

    lst.remove(1996) # 移除列表中某个值的第一个匹配项

    lst.reverse() # 反向列表中元素,倒转

    print lst.sort() # 对原列表进行排序

    print lst.pop(1) # 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

    print lst

    print lst.count('obj') # 统计某个元素在列表中出现的次数

    lst.index('append') # 从列表中找出某个值第一个匹配项的索引位置,索引从0开始

    lst.extend(lst) # 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

    print 'End:', lst

    七、字典

    字典(dictionary)是除列表之外python中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。# -*- coding:utf-8 -*-

    dit = {'name': 'Zara', 'age': 7, 'class': 'First'}

    dict1 = {'abc': 456}

    dict2 = {'abc': 123, 98.6: 37}

    seq = ('name', 'age', 'sex')

    # 访问字典里的值

    print "dit['name']: ", dit['name']

    print "dit['age']: ", dit['age']

    # 修改字典

    dit["age"] = 27 # 修改已有键的值

    dit["school"] = "wutong" # 增加新的键/值对

    print "dict['age']: ", dit['age']

    print "dict['school']: ", dit['school']

    # 删除字典

    del dit['name'] # 删除键是'name'的条目

    dit.clear() # 清空词典所有条目

    del dit # 删除词典

    dit = {'name': 'Zara', 'age': 7, 'class': 'First'}

    # 字典内置函数&方法

    cmp(dict1, dict2) # 比较两个字典元素。

    len(dit) # 计算字典元素个数,即键的总数。

    str(dit) # 输出字典可打印的字符串表示。

    type(dit) # 返回输入的变量类型,如果变量是字典就返回字典类型。

    dit.copy() # 返回一个字典的浅复制

    dit.fromkeys(seq) # 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值

    dit.get(dit['name']) # 返回指定键的值,如果值不在字典中返回default值

    dit.has_key('class') # 如果键在字典dict里返回true,否则返回false

    dit.items() # 以列表返回可遍历的(键, 值) 元组数组

    dit.keys() # 以列表返回一个字典所有的键

    dit.setdefault('subject', 'Python') # 和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default

    dit.update(dict2) # 把字典dict2的键/值对更新到dict里

    dit.values() # 以列表返回字典中的所有值

    dit.clear() # 删除字典内所有元素

    八、元祖

    Python的元组(tuple)与列表类似,不同之处在于元组的元素不能修改;元组使用小括号(),列表使用方括号[];元组创建很简单,只需要在括号中添加元素,并使用逗号(,)隔开即可.# -*- coding:utf-8 -*-

    tup1 = ('physics', 'chemistry', 1997, 2000)

    tup2 = (1, 2, 3, 4, 5)

    tup3 = "a", "b", "c", "d"

    # 访问元组

    print "tup1[0]: ", tup1[0] # physics

    print "tup1[1:3]: ", tup1[1:3] # ('chemistry', 1997)

    # 修改元组

    tup4 = tup1 + tup2

    print tup4 # (12, 34.56, 'abc', 'xyz')

    # 删除元组

    tup = ('tup3', 'tup', 1997, 2000)

    print tup

    del tup

    # 元组索引&截取

    L = ('spam', 'Spam', 'SPAM!')

    print L[0] # spam

    print L[1] # Spam

    print L[2] # 'SPAM!'

    print L[-2] # 'Spam'

    print L[1:] # ['Spam', 'SPAM!']

    # 元组内置函数

    print cmp(tup3, tup2) # 比较两个元组元素。

    len(tup3) # 计算元组元素个数。

    max(tup3) # 返回元组中元素最大值。

    min(tup3) # 返回元组中元素最小值。

    L = [1, 2, 3, 4]

    print L

    print tuple(L) # 将列表转换为元组。

    九、定义字符串\n 表示换行

    \t 表示一个制表符

    \\ 表示 \ 字符本身

    十、Unicode字符串Python默认编码ASCII编码

    # -*- coding: utf-8 -*-

    十一、数字类型转换int(x [,base]) 将x转换为一个整数

    float(x ) 将x转换到一个浮点数

    complex(real [,imag]) 创建一个复数

    str(x) 将对象x转换为字符串

    repr(x) 将对象x转换为表达式字符串

    eval(str) 用来计算在字符串中的有效Python表达式,并返回一个对象

    tuple(s) 将序列s转换为一个元组

    list(s) 将序列s转换为一个列表

    chr(x) 将一个整数转换为一个字符

    unichr(x) 将一个整数转换为Unicode字符

    ord(x) 将一个字符转换为它的整数值

    hex(x) 将一个整数转换为一个十六进制字符串

    oct(x) 将一个整数转换为一个八进制字符串

    展开全文
  • 变量: 在C中,变量包含内存位置。程序可以通过变量的名称,访问这个变量的值。...a的内存地址是2010,这个2010 跟 1 的关系,类似于你家住址的关系。了解这个就是了解指针的基础。 命名变量: 1.名称可以...
    变量:

    在C中,变量包含内存位置。程序可以通过变量的名称,访问这个变量的值。赋值的过程,就是修改内存单元存储数据的过程。
    例如,我们使用 int a = 1;,进行赋值。其中a在内存中,有一个自己的地址,我们假设这个地址为2010,在2010这个内存单元里面值是1。a的内存地址是2010,这个2010 跟 1 的关系,类似于你家住址和你的关系。了解这个就是了解指针的基础。

    命名变量:
    1.名称可以包含字母,数字和_.
    2.名称开头只能是字母或者是_
    3.大小写敏感,Test.c 跟 test.c不是一个文件。
    4.名称不能使用关键字。
    5.不要使用_X 或者__作为变量名称,因为这都是系统库使用的变量名称。X为大写字母 另外,为了便于阅读代码,请使用有意义的变量名称进行定义
    
    声明变量

    data_type name_of_variable;

    为什么要使用date_type?C语言是个强类型语言,我们在使用变量的时候必须要添加类型,关键是由于:C的编译器可以通过类型,对这个变量分配相对应的内存,这就可以节省更多的内存空间。

    int a;
    int b;
    int c;

    => int a,b,c;

    计算数值时,如果你再float和double类型中徘徊的时候,我建议你使用double。
    当然你不在意精度的话,请使用float类型,使用float类型时,计算速度会很快,分配的内存也相对少些。但是也会带来很多让你非常难以debug的错误。

    int main(void)
    {
    
            float a = 3.1;
            if (a == 3.1)
                    printf("Yes\n");
            else
                    printf("No\n");
    
            printf("%.9f\n",a - 3.1);
    
            return 0;
    
    }
    

    如果定义a为float类型,那么结果是:
    No
    -0.000000095

    如果定义为double类型,结果是:
    Yes
    0.000000000

    复杂的变量定义

    static const unsigned int a;

    相对static变量定义,缺省的变量类似是auto类型,剩下的还有extern和register,一共是4种。
    我们回头再说这些,暂时只要知道这些关键字都是和寄存器相关即可

    另外const这个关键字,其实意思就是read-only,只读。

    自动转换问题
    int main(void)
    {
      int i = 6;
      double j = i/4;
      printf("The j is %f\n",j);
    
    }
    

    运算结果为:
    1.000000

    实际上,由于i/4,i属于int,4 也是int,i/4得到一个int类型的数值 1。然后将1转变成double类型 1.000000。如果想得到更精确的结果,请讲4,写成4.0

    另外就是char与int类型转换问题,由于ASCII码的范围是0-255,所以char的变量,在int表示就只能在这个范围内,int ch,这个变量ch,只能在0-255之前赋值。

    #include <stdio.h>
    
    int main(void)
    {
            int ch = 65;
            printf("The ch is %c\n",ch);
    
    }
    

    结果:
    The ch is A

    #include <stdio.h>
    int main(void)
    {
      int a = -20;
      unsigned int b = 200;
    
      if(a < b)
        printf("Yes\n");
      else
        printf("No\n");
    
      return 0;
    }
    

    结果:
    No

    因为在做比较时,int 会先转变成unsigned int,然后再做对比。但是-20转变成无符号整数时,这时a = 2^32 - 20, 自然a > b

    还有类似以下的强制转换:
    int a = (int)1.99 * 10

    结果为:10

    类型限定

    const 就是只读类型,既然是只读,我们无法在程序其他位置为其赋值,所以只能在声明的时候就对其进行赋值。
    const int a = 10

    作为限定符的volatile,用的相对少很多。这个关键字的作用是通知编译器,这个变量可能会改变,即便它在程序中似乎没有被修改。

    int flag = 0;
    while(flag != 100)
    {
    ...
    }
    

    这个循环似乎是个死循环,然而flag可以被隐式修改,所以我们可以定义flag为:
    volatile int flag = 0 ;

    define标识符

    #define macro_name value

    其实这个不是变量,只是一个宏。也就是说在编译器编译前,会有以一个预编译过程,这个过程会将之前定义的macro_name 用 value进行一个替换而已。这macro_name 也不会被分配内存空间
    不过通过这种方式,我们会很方便的进行设置一些常量,并方便进行修改。
    关于宏定义,将来还会拿出来学习一下的。

    展开全文
  • 在计算机语言中,变量用于存储信息,以便被引用或操作。...基于变量的数据类型,解释器会为变量分配内存,并且确定什么可以存储到保留的内存当中。在使用变量之前,不必要声明变量它的类型。变量名称是...
  • Ch02数据类型和变量

    2020-11-23 14:22:34
    Ch02数据类型和变量** **1默写类容:** 本章任务 升级“我行我素购物管理系统” 1.实现购物结算,并打印购物小票 2.模拟商场幸运抽奖,计算会员卡各位数字之和 3.根据商品折扣判断折扣价 学习目标 1.掌握常用数据...
  • 1.1 数据类型和变量 1.1.1 啥是数据类型 数据类型是一种模子(可以类似于打蜂窝煤 那个机器) 数据类型是固定内存大小别名 数据类型只是一种模子,并不会实际占用内存空间,只有当用模子(数据类型)定义...
  • java数据类型和变量

    2019-09-28 17:42:30
    注意事项:int表示变量的类型是一个整型,Java 中 = 表示赋值(数学不一样), 意思是给变量设置一个初始值.一定不要忘记分号。 在 Java 中, 一个 int 变量占 4 个字节. 操作系统没有直接关系. 4 个字节表示的数据...
  • 数组数据类型,怎么定义数据数组类型,定义数组类型指针,数组类型和数组指针类型的关系,很重要的。 可以使用sizeof求数据类型的大小。sizeof测量变量的大小在编译期就已经完成。 可以通过typedef自定义数据类型...
  • java基本数据类型分为四类八种: 分为整数型,小数型,字符型,布尔型 (引用数据类型分为:数组,类,接口) (算数、赋值、关系、逻辑、三元,这些运算符这次先不说) 整数型 分为byte、short、int、long 这四...
  • 昨天搭建好juypter notebook,并录制了第一堂python课程,简单讲解了python历史,以及python可以帮助我们如何提供效率。视频可以通过回看视频进行回看:...
  • 变量和数据类型

    2021-01-05 19:14:16
    变量和数据类型变量命名规则常用数据类型数据类型说明变量声明及使用常量Scanner使用类型转换自动类型转换强制类型转换运算符赋值运算符算数运算符关系运算符逻辑运算符 变量命名规则 1.字(字母),下(下划线),美...
  • 3数组类型和数组指针类型的关系) */ #include "stdio.h" #include "string.h" void main() { int a ; // 告诉 c 编译器分配 4 个字节的内存 int b[10] ; // 告诉 c 编译器分配 40 个字节内存 printf("b:%d, b+...
  • Java变量和数据类型

    2021-01-05 17:31:27
    非数值型:数据类型说明变量声明及使用练习演示1:常量练习演示2:Scanner使用练习演示3:自动类型转换强制转换练习演示4:三变量交换法练习演示5:算数运算符练习演示6:关系运算符![在这里插入图片描述]...
  • 一、变量和数据类型简介 1、数据通常存储在内存当中 2、数据存入内存后,内存会分配一个内存地址,下次通过地址可以找回数据 3、但是内存地址通常不好记,会起个名字,就是变量名 4、不同类型数据分配存储空间不...
  • 变量的属性——变量与数据类型

    千次阅读 2018-06-04 09:04:02
    问题:为什么C语言需要变量和数据类型? 在汇编语言中,存放数据是直接用内存地址存放的,这种赋值方法非常...示例代码:类型和变量的关系 int main () { char c = 0 ; short s = 0 ; int i = 0 ; printf ...
  • C语言编程预备知识 1.CPU 内存条 硬盘 显卡 主板 显示器 之间的关系 1)、CPU——完成主要的计算控制工作,是计算机的核心; 2)、内存——Windows操作系统要求程序在内存中运行; 3)、硬盘——电脑主要的存储媒介之...
  • 文章目录一、python中的数据类型不同数据类型之间的转换在内存中删除变量二、python中的变量1、变量的定义2、变量的命名3、变量的类型4、变量地址的关系5、Python的id()函数可以查看返回对象的内存地址6、python中...
  • 个人整理javaScript学习笔记! 主要参考廖雪峰老师官方网站:...JavaScript不区分整数浮点数,统一用Number表示,以下都是合法Number类型: 123; // 整数123 0.456; // 浮点数0.456 ...
  • scala 变量和数据类型

    2019-12-04 17:52:48
    文章目录一、注释二、标识符命令规范三、 Scala关键字(39个)四、变量五、键盘输入六、数据类型关系七、数据类型八、类型转换 一、注释 Java 三种注释一样 // ① /* ② */ /** * ③ */ 二、标识符...
  • 数据类型变量和常量以及拆包装包 一、数据类型 Java数据类型分为基本类型(primitive types)引用类型(reference type),其中基本类型又分为数值型、字符型、布尔型。引用类型又分为类类型、接口类型、数组类型...
  • (主要是JAVA开发人,虽然JAVAJS没什么关系,但是自然会JS做一个对比学习) 数据类型 (一) 数据类型分类(两种) 1) 基本数据类型(五种) Ø 数值型 Ø 字符串型 Ø 布尔型 Ø null...
  • Jni中C++Java参数传递如何使用JNI一些基本方法过程在网上多如牛毛,如果你对Jni不甚了解,不知道Jni是做什么,如何建立一个基本jni程序,或许可以参考下面下面这些文章:利用VC++6.0实现JNI最简单...
  • 掌握boolean数据类型和关系运算符 掌握变量的概念 面向过程程序的定义 程序的定义:程序=数据+算法+文档 程序要操作的数据保存在内存中 在内存中用内存地址来标识数据或者代码段 通过地址操作数据不方便...
  • Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象引用,而不是对象本身,对象本身存放...
  • 变量和数据类型 一、为什么要使用变量 程序来源于生活,用于解决生活中问题。在生活中比如想去存储班级中所有学生姓名到计算机中,那么就需要在计算机内存中开辟空间,用于数据存储。那开辟这个空间,就称为...
  • 变量、数据类型和运算符 文章目录变量、数据类型和运算符一、变量1.变量的定义2.变量命名规则3.变量声明及使用4.Scanner的使用二、数据类型1.java中常用的数据类型2.数据类型转换三、运算符1.赋值运算符2.算数运算符...
  • l 数据类型 C语言程序中允许程序员扩展新数据类型。→复合数据类型(先定义后使用) 布尔类型是C99规范中引入数据类型,只包含了两个数字,一个是真(1),一个是...数据类型和占位符对应关系:  char 和

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,449
精华内容 1,779
关键字:

数据类型和变量的关系