精华内容
下载资源
问答
  • static变量可以被修改吗

    千次阅读 2018-05-03 00:35:41
    其拥有的值是可变的 ,而且它会保持最新的值。说其静态,是因为它不会随着函数的调用和退出而发生变化。即上次调用函数的时候,如果我们给静态变量赋予某个值的话,下次函数调用时,这个值保持不变。静态变量 类型...
    静态变量并不是说其就不能改变值,不能改变值的量叫常量。 其拥有的值是可变的 ,而且它会保持最新的值。说其静态,是因为它不会随着函数的调用和退出而发生变化。即上次调用函数的时候,如果我们给静态变量赋予某个值的话,下次函数调用时,这个值保持不变。

    静态变量 类型说明符是static。

    静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在 静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个运行期间都不释放),也可以认为是其内存地址不变,直 到整个程序运行结束(相反,而auto自动变量,即动态局部变量,属于动态存储类别,占动态存储空间,函数调用结束后即释放)。静态变量虽在程序的整个执 行过程中始终存在,但是在它作用域之外不能使用。

    另外,属于静态存储方式的量不一定就是静态变量。 例如:外部变量虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。

    所有的全局变量都是静态变量,而局部变量只有定义时加上类型修饰符static,才为局部静态变量。

    静态变量可以在任何可以申请的地方申请,一旦申请成功后,它将不再接受其他的同样申请。
    展开全文
  • static变量可以被修改吗?

    万次阅读 2017-10-11 11:08:26
    其拥有的值是可变的 ,而且它会保持最新的值。说其静态,是因为它不会随着函数的调用和退出而发生变化。即上次调用函数的时候,如果我们给静态变量赋予某个值的话,下次函数调用时,这个值保持不变。静态变量 类型...
    静态变量并不是说其就不能改变值,不能改变值的量叫常量。 其拥有的值是可变的 ,而且它会保持最新的值。说其静态,是因为它不会随着函数的调用和退出而发生变化。即上次调用函数的时候,如果我们给静态变量赋予某个值的话,下次函数调用时,这个值保持不变。

    静态变量 类型说明符是static。

    静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在 静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个运行期间都不释放),也可以认为是其内存地址不变,直 到整个程序运行结束(相反,而auto自动变量,即动态局部变量,属于动态存储类别,占动态存储空间,函数调用结束后即释放)。静态变量虽在程序的整个执 行过程中始终存在,但是在它作用域之外不能使用。

    另外,属于静态存储方式的量不一定就是静态变量。 例如:外部变量虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。

    所有的全局变量都是静态变量,而局部变量只有定义时加上类型修饰符static,才为局部静态变量。

    静态变量可以在任何可以申请的地方申请,一旦申请成功后,它将不再接受其他的同样申请。
    展开全文
  • 所谓变量,就是可变的量。就好象在内存中临时存放的一个小盒子,这个小盒子放的什么物体不固定。Sub t1() Dim X As Integer '定义x一个变量变量类型为Integer整数 For X = 1 To 10 Cells(X, 1) = X Next X ...

    学习资源:《Excel VBA从入门到进阶》第五讲 变量 by蓝色幻想

    一、什么是变量?

    所谓变量,就是可变的量。就好象在内存中临时存放的一个小盒子,这个小盒子放的什么物体不固定。

    Sub t1()
    
    Dim X As Integer '定义x是一个变量,变量类型为Integer整数
    For X = 1 To 10
        Cells(X, 1) = X
    Next X
    
    End Sub

    f44a0f9f8d9553030378644a95712982.png

    二、小盒子里可以放什么?

    1. 放数字(如上例)

    2. 放文本

    Sub t2()
    Dim st As String'定义st是一个变量,变量类型为String字符串
    Dim X As Integer
    
    For X = 1 To 10
        st = st & "Excel精英培训"
    Next X
    
    End Sub

    3. 放对象

    Sub t3()
    
    Dim rg As Range '变量的命名最好有含义,能一看就知道这个变量指什么。
    Set rg = Range("a1") '变量的赋值是从右往左读入,计算机会先读到range("a1"),然后把它赋值给rg
    rg = 100
    
    End Sub

    4. 放数组

    Sub t4()
           
    Dim arr(1 To 10) As Integer, X As Integer '可在一行定义几个变量
    For X = 1 To 10
        arr(X) = X
    Next X
            
    End Sub

    三、变量的类型和声明

    1. 变量的类型

    详见帮助文件F1(在第一篇笔记已经写过了,就不再重复写了)

    2.变量的声明

    声明变量有几种方式,可一次声明多个变量,用逗号隔开:

    Dim 变量名 As 变量类型 ‘最常用的声明变量方式,可用在过程和模块中。

    Public 变量名 As 变量类型‘声明公共变量

    Private 变量名 As 变量类型‘声明私有变量

    Static 变量名 As 变量类型‘声明静态变量,在整个代码运行期间中静态变量的值不会变化

    有时候会直接省略后面的变量类型,直接写为Dim 变量名,计算机会默认它为dim x as variant(variant是变体型数),然后据根它的赋值自动判断变量类型。尽量少用,易造成内存的浪费。

    3.为什么要声明变量

    其实不声明变量,计算机在遇到一个新的变量名时也会给它建盒子~但是这样做就会很混乱了,尤其在写错变量名时,变量名的大小写对计算机来讲都是不一样的,比如变量X和变量x是两个变量,所以非常有必要声明变量。最好在写代码前先写一句强制声明语句Option Explicit,或者在工具→选项→编辑器标签→选中“要求声明变量”,这样计算机就会知道只有被声明过的变量才需要建盒子,没有声明的就显示编译出错。

    Option Explicit
    
    Sub DD()
    Dim qq
    qq = 12
    End Sub

    四、变量的存活周期

    1. 过程级变量

    过程结束,变量值释放。每一个Sub就是一个过程。

    2. 模块级变量

    变量的值只在本模块中保持,工作簿关闭时随时释放。一个模块中可以有多个Sub,在Sub外声明的变量,可在该模块中的全部Sub中使用。

    3. 全局级变量

    在所有的模块中都可以调用,值会保存到EXCEL关闭时才会被释放。用Public声明的变量就是全局级变量。

    Public qq As Integer
    
    Sub DD()
      qq = 12
    End Sub

    五 变量的释放

    一般情况下,过程级变量在过程运行结束后就会自动从内存中释放,而只有一些从外部借用的对象变量才需要使用set 变量=nothing进行释放。

    展开全文
  • 其实不只String,很多Java标准类库中的类都可变的。在开发一个系统的时候,我们有时候也需要设计不可变类,来传递一组相关的值,这也面向对象思想的体现。不可变类有一些优点,比如因为它的对象只读的,所以...
  • 变量1.变量•指在程序执行过程中,可变的量;•定义一个变量,就会伴随有3个特征,分别是内存ID、数据类型和变量值。•其他语言运行完之前,一定要手动把程序的内存空间释放掉。...
        

    变量


    1.变量

    •指在程序执行过程中,可变的量;

    •定义一个变量,就会伴随有3个特征,分别是内存ID、数据类型和变量值。

    •其他语言运行完之前,一定要手动把程序的内存空间释放掉。但python解释器是自带内存回收机制的,一旦python程序运行完后,会自动释放内存空间。

     

    age=10

    print(id(age),type(age),age)


    常量


    2.常量

    •指在程序执行过程中,不可变的量;

    •一般都用大写字母定义常量。

     

    AGE=10

    print(AGE)

     

    3. 变量的命名方式

    •驼峰体

     

    AgeOfOldboy=72

     

    •下划线

     

    age_of_oldboy=72

     

    与程序交互


    古时候,我们去银行取钱,需要有一个银行业务员等着我们把自己的账号密码输入给他,然后他去进行验证等成功后,我们再将取款金额输入、告诉他。

    骄傲的现代人,会为客户提供一台ATM机(就是一台计算机),让ATM机跟用户交互,从而取代人力。然而机器是死的,我们必须为其编写程序来运行,这就要求我们的编程语言中能够有一种能与用户交互,接收用户输入数据的机制。

     

    1.python3

    •python3默认支持UTF-8中文编码。python2需要添加# -*- coding:utf-8 -*-在代码头部。

    •python3中input,不管输入什么类型的值都被存成str(字符串)类型

     

    name=input('please enter the username: ')

    print(id(name),type(name),name)

     

    2.python2

    •python2中raw_input跟python3中input一样;

     

    name=raw_input('please enter the username: ')

    print(id(name),type(name),name)

     

    •python2中input,必须输入值,这个值是什么类型就会被存成什么类型。

     

    name=input('please enter the username: ')

    print(id(name),type(name),name)

     

    数据类型


    1.int整型

    •一般用于定义年龄、身份证号、qq号、等级等

     

    age=18

    id=130530198805240011

    qq=379048558

    level=99

     

    2.float浮点型

    •一般用于定义身高、体重、薪资等

     

    height=1.81

    height=float(1.81)

     

    3.str字符串型

    •一般用于定义人的名字、性别、状态等;

    •一般字符串放在单引号、双引号、三引号中。

     

    name='egon'

    sex='female'

    age=18

     

    •字符串拼接用"+"

     

    name='egon'

    sex='female'

    age=18

    print(name+sex+str(age))

    注:这里的age变量值为18,是int整型不能作字符串拼接,需使用str(age)来转换成字符串类型。

     

    •字符串拼接用"*"

     

    name='egon'

    print(name*10)

     

    4.bool布尔值型

    •只有True和False两个值;

    •多用于作判断。

     

    age=73

    AGE=18

    print(age < AGE)

    print(age > AGE)

     

    5.各类型相互转换

    •整型——>浮点型

     

    a=18

    print(float(a))

     

    •浮点型——>整型

     

    a=1.81

    print(int(a))

     

    •浮点型——>字符串型

     

    a=1.81

    print(str(a))

     

    •整型——>字符串型

     

    a=18

    print(str(a))

     

    数组类型


    1.列表[]

    •python中的列表,定义在[]内,其内元素之间使用"逗号"分隔;

     

    info=['egon','alex',18]

    print(info[2])

     

    •元素可以是任意一种数据类型、任意一种数组类型;

    •字符元素需要引号引起来,整型、浮点型、列表等不需要引号。

     

    info=[13,18.1,'alex',['egon','tony']]

    print(info[3][0])

     

    2.字典{}

    •python中的字典,也叫关联数组,定义在{}内,其内元素使用项目名:项目内容格式表示,元素之间使用"逗号"分隔;

     

    info={'name':'egon','sex':'male',3:18}

    print(info[3])

     

    •项目内容可以是任意一种数据类型、任意一种数组类型;

    •项目内容中的字符串型需要引号引起来,整型、浮点型、列表等不需要引号。

     

    info={'姓名':'爱根','性别':'男','肌肉':['有','无']}

    print(info['肌肉'][1])

     

    info={'姓名':'爱根','性别':'男','肌肉':123}

    print(info['肌肉'])

     

    info={'姓名':'爱根','性别':'男','肌肉':18.1}

    print(info['肌肉'])

     

    info={'姓名':'爱根','性别':'男','肌肉':'无'}

    print(info['肌肉'][1])

     

    格式化输出


    •my name is xxx, my age is xxx

    •需要使用占位符%s

     

    name=input('user_name>>: ')

    age=input('user_age>>: ')

    print('my name is %s, my age is %s' %(name,age))


    运算符


    1.算术运算符

    •+ - * /

     

    print(5+5) #5加5等于10

    print(5-5) #5减5等于0

    print(5*5) #5乘5等于25

    print(5/2) #5除以2等于2.5

     

    •求商整数部分// 求商余数部分% 幂**

     

    print(5//2) #5除以2商等于2余1,只取商2

    print(5%2) #5除以2商等于2余1,只取余数1

    print(3**2) #3的2次幂是3乘3等于9

     

    2.比较运算符

    •> < >= <= == !=

     

    print(30 > 20)

    print(30 < 20)

    print(30 >= 30)

    print(30 <= 30)

    print(30 == 30)

    print(30 != 40)

     

    3.逻辑运算符

    •逻辑与and 逻辑或or 逻辑非not 按位与& 按位或|

    •逻辑与and,必须满所有条件,结果才为True;

    •逻辑或or,只需满足一个条件,结果就为True;

    •逻辑非not,结果取反。

     

    name='egon'

    age=18

    print(age > 15 and name == 'egon')

    print(age > 15 or name != 'egon')

    print(not age > 15)

    展开全文
  • 你必须知道495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    我找不到任何方法来声明这样函数——感觉我需要一个返回指针函数,返回指针指向返回指针函数……,如此往复,以至无穷。 数组大小 1.23 能否声明和传入数组大小一致局部数组,或者由其他参数...
  • 我找不到任何方法来声明这样函数——感觉我需要一个返回指针函数,返回指针指向返回指针函数……,如此往复,以到无穷。 41 数组大小 42 1.23 能否声明和传入数组大小一致局部数组,或者由其他...
  • 我找不到任何方法来声明这样函数——感觉我需要一个返回指针函数,返回指针指向返回指针函数……,如此往复,以到无穷。 41 数组大小 42 1.23 能否声明和传入数组大小一致局部数组,或者由其他...
  • 我找不到任何方法来声明这样函数——感觉我需要一个返回指针函数,返回指针指向返回指针函数……,如此往复,以至无穷。 12  数组大小 13 1.23 能否声明和传入数组大小一致局部数组,或者由...
  • 我找不到任何方法来声明这样函数——感觉我需要一个返回指针函数,返回指针指向返回指针函数……,如此往复,以至无穷。  数组大小  1.23 能否声明和传入数组大小一致局部数组,或者由其他参数...
  • 我找不到任何方法来声明这样函数——感觉我需要一个返回指针函数,返回指针指向返回指针函数……,如此往复,以至无穷。 数组大小 1.23 能否声明和传入数组大小一致局部数组,或者由其他参数...
  • 《你必须知道495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    我找不到任何方法来声明这样函数——感觉我需要一个返回指针函数,返回指针指向返回指针函数……,如此往复,以至无穷。 12  数组大小 13 1.23 能否声明和传入数组大小一致局部数组,或者由...
  • 什么可变类 类型转换 Math类round,ceil和floor方法 值传递和引用传递有什么不同? char型变量是否可以存储一个中文汉字 s=null和s=” ”是否相同 new String(“abc”)创建了几个对象 String变量做“+”运算时...
  • 5.1.2 不可变的字符串 5.1.3 字符串比较 5.2 表达式类型的陷阱 5.2.1 表达式类型的自动提升 5.2.2 复合赋值运算符的陷阱 5.3 输入法导致的陷阱 5.4 注释的字符必须合法 5.5 转义字符的陷阱 5.5.1 慎用字符...
  •  Java Bean 是可复用组件,对Java Bean并没有严格规范,理论上讲,任何一个Java类都可以是一个Bean。但通常情况下,由于Java Bean是被容器所创建(如Tomcat),所以Java Bean应具有一个无参构造器,另外,...
  • 5.1.2 不可变的字符串 131 5.1.3 字符串比较 133 5.2 表达式类型的陷阱 135 5.2.1 表达式类型的自动提升 135 5.2.2 复合赋值运算符的陷阱 136 5.3 输入法导致的陷阱 138 5.4 注释的字符必须合法 138 ...
  • 我找不到任何方法来声明这样函数——感觉我需要一个返回指针函数,返回指针指向返回指针函数,如此往复,以至无穷。 数组大小 1.23 能否声明和传入数组大小一致局部数组,或者由其他参数指定大小...
  • 我找不到任何方法来声明这样函数——感觉我需要一个返回指针函数,返回指针指向返回指针函数,如此往复,以至无穷。  数组大小  1.23 能否声明和传入数组大小一致局部数组,或者由其他参数指定...
  • 我找不到任何方法来声明这样函数——感觉我需要一个返回指针函数,返回指针指向返回指针函数,如此往复,以至无穷。 数组大小 1.23 能否声明和传入数组大小一致局部数组,或者由其他参数指定大小...
  • 那么我能否查询 malloc 包, 分配最大块多大? . . . . . . . 40 7.25 向 realloc() 第一个参数传入空指针合法吗?你为什么要这样做? 40 7.26 calloc() 和 malloc() 有什么区别?利用 calloc 零填充功能...
  • 你必须知道495个C语言问题(PDF)

    热门讨论 2009-09-15 10:25:47
    3.4 这个巧妙表达式: a ˆ= b ˆ= a ˆ= b 它不需要临时变量 以交换a 和b 值。. . . . . . . . . . . . . . . . . . . . . . . . . 14 3.5 我可否用括号来强制执行我所需要计算顺序? . . . . . . . . ....
  •  final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。 finally异常处理语句结构一部分,表示总是执行。 finalizeObject类一个方法,在垃圾收集器执行时候会调用被回收对象...
  • o 4.4 这个巧妙表达式: a ^= b ^= a ^= b 它不需要临时变量就可以交换 a 和 b 值。 o 4.5 我可否用括号来强制执行我所需要计算顺序? o 4.6 可是 && 和 || 运算符呢?我看到过类似 while((c = getchar())...
  • java 面试题 总结

    2009-09-16 08:45:34
    Java Bean 是可复用组件,对Java Bean并没有严格规范,理论上讲,任何一个Java类都可以是一个Bean。但通常情况下,由于Java Bean是被容器所创建(如Tomcat),所以Java Bean应具有一个无参构造器,另外,...
  • 21天学通C++ (中文第五版)

    热门讨论 2010-06-23 16:57:03
    无论读者刚开始学习编程还是已经有一些编程经验,书中精心安排内容都将让你C++学习得既快速又轻松。 本书约定 提示:提供使读者进行C++编程时更高效、更有效信息。注意:提供与读者阅读内容相关...

空空如也

空空如也

1 2 3 4 5
收藏数 81
精华内容 32
关键字:

内存变量是可变的量吗