精华内容
下载资源
问答
  • 一.Shell变量变量:是shell传递数据的一种方式,用来代表每个取值的符号名。...在bash中,变量的默认类型都是字符串型,如果要进行数值运算,则必须指定变量类型为数值型变量用等号连接值,等号左右两侧能有...

    一.Shell变量

    变量:是shell传递数据的一种方式,用来代表每个取值的符号名。

    当shell脚本需要保存一些信息时,如一个文件名或是一个数字,就把它存放在一个变量中。

    二.变量设置规则:

    • 变量名称可以由字母,数字和下划线组成,但是不能以数字开头,环境变量名建议大写,便于区分。
    • 在bash中,变量的默认类型都是字符串型,如果要进行数值运算,则必须指定变量类型为数值型。
    • 变量用等号连接值,等号左右两侧不能有空格。
    • 变量的值如果有空格,需要使用单引号或者双引号包括。

    三.变量分类

    Linux Shell中的变量分为:

    • 用户自定义变量
    • 环境变量
    • 位置参数变量
    • 预定义变量

    可以通过set命令查看系统中存在的所有变量

    1.用户自定义变量

    用户自定义的变量由字母或下划线开头,由字母,数字或下划线序列组成,并且大小写字母意义不同,变量名长度没有限制。

    用户自定义的变量,作用域为当前的shell环境。

    设置变量:

    习惯上用大写字母来命名变量。变量名以字母表示的字符开头,不能用数字。

    变量调用:

    在使用变量时,要在变量名前加上前缀“$”.

    使用echo 命令查看变量值。

    echo $A

    变量赋值:

    a.定义时赋值:

    变量=值

    等号两侧不能有空格

    STR="hello world"A=9

    b.将一个命令的执行结果赋给变量

    A=`ls -la` 反引号,运行里面的命令,并把结果返回给变量A

    A=$(ls -la) 等价于反引号

    aa=$((4+5))bb=`expr 4 + 5 `

    c.将一个变量赋给另一个变量

    A=$STR

    d.变量叠加

    #aa=123#cc="$aa"456#dd=${aa}789

    单引号和双引号的区别:

    现象:单引号里的内容会全部输出,而双引号里的内容会有变化

    原因:单引号会将所有特殊字符脱意

    NUM=10 SUM="$NUM hehe" echo $SUM 输出10 heheSUM2='$NUM hehe' echo $SUM2 输出$NUM hehe

    列出所有的变量:

    # set

    删除变量:

    # unset NAME

    eg :

    # unset A 撤销变量 A

    # readonly B=2 声明静态的变量 B=2 ,不能 unset

    6679a613c005819fc5f15d2cde0261a0.png

    2.环境变量

    保存和系统操作环境相关的数据。$HOME、$PWD、$SHELL、$USER等等

    用户自定义变量只在当前的shell中生效,而环境变量会在当前shell和其所有子shell中生效。如果把环境变量写入相应的配置文件,那么这个环境变量就会在所有的shell中生效。

    export 变量名=变量值 申明变量

    作用域:当前shell以及所有的子shell

    3.位置参数变量

    主要用来向脚本中传递参数或数据,变量名不能自定义,变量作用固定。

    26f66bfa1523d261c334dbe9ccf6cc57.png

    位置参数变量

    shift指令:参数左移,每执行一次,参数序列顺次左移一个位置,$# 的值减1,用于分别处理每个参数,移出去的参数不再可用

    $* 和 $@的区别

    $* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号" "包含时,都以"$1" "$2" … "$n" 的形式输出所有参数

    当它们被双引号" "包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数

    shell脚本中执行测试:

    cf7ad3a04b7f9f99241b497e867564f5.png

    shell脚本中执行测试

    执行结果:

    abdb7ef4c38c2cf37bf0970f0c163aa7.png

    执行结果

    4.预定义变量

    是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的。

    96caa19ffa47e38e66ef41e168f1836f.png

    预定义变量

    进行测试:

    a197dda654415b9fb2d69ef5f9fd84f4.png

    进行测试

    执行结果:

    1bb63d0b2ec45662ebeb241d67a75d95.png

    执行结果

    展开全文
  • 赋值运算符 ...将整型数据赋值给浮点时,数值不会发生变化,但是会以指数形式存储到变量中。 将double数据给float数据赋值时,要注意数值范围能溢出。 字符数据赋值给整型变量时,是将字符在ASCII码

    赋值运算符

    小林在前面小结中有说过赋值符号=就是赋值运算符,它的主要作用是将一个值赋给一个变量。

    比如,把常量5的值赋给变量x。

    x=5;
    

    也可以把一个表达式的值赋给变量

    int x;
    x=3+5*2;
    

    赋值过程中的类型转换

    在赋值的过程中会自动的进行类型转换,将浮点型数据赋值给整型变量时,会舍弃小数部分。

    将整型数据赋值给浮点型时,数值不会发生变化,但是会以指数形式存储到变量中。

    将double型数据给float型数据赋值时,要注意数值范围不能溢出。

    字符型数据赋值给整型变量时,是将字符在ASCII码表中的值赋给了整型变量。

    将int,short,long型数据赋给char型变量时,是将其低8位原封不动的送到char型变量。

    将signed型数据赋给长度一样的unsigned型变量时,将存储单元内容原样赋过去。

    复合赋值运算符

    x+=4; //等价于x=x+4
    x*=y+1; //等价于x=x*(y+1)
    

    C++使用复合运算符可以简化程序,使之更加精炼,提高编译效率。

    赋值表达式

    将一个变量和一个表达式连接起来的式子可以称为赋值表达式。

    一般形式
    <变量><赋值运算符><表达式>
    
    x=y=z=2; //赋值表达式的值为2,xyz值都为2
    x=1+(y=2); //表达式值为3,y的值为2,=右边值为3
    

    案例:将有符号数据赋值给无符号变量,并输出。

    #include<iostream>
    using namespace std;
    int main()       //主函数
    {
      unsigned short num_1; //定义无符号变量
      short int num_2=-10; //定义有符号的短整型变量且赋值
      num_1=num_2; //赋值
      cout<<num_1<<' '<<num_2<<endl; //输出
      return 0;
    }
    

    执行本程序之后,则会输出65526 -10。

    会先获取-10的补码,16个二进制位,将它传给num_1,num_1是无符号型变量,补码的16个二进制位的十进制是65526。

    C++实现将有符号数据赋给无符号

    更多案例可以go公众号:C语言入门到精通

    展开全文
  • 赋值运算符小林在前面小结中有说过赋值符号=就是赋值运算符,它的主要作用是将一个值赋给一个变量。...将整型数据赋值给浮点时,数值不会发生变化,但是会以指数形式存储到变量中。将double数据给flo...

    0703e7bc0909d629c1111172a2fa2141.png

    赋值运算符

    小林在前面小结中有说过赋值符号=就是赋值运算符,它的主要作用是将一个值赋给一个变量。

    比如,把常量5的值赋给变量x。

    x=5;
    


    也可以把一个表达式的值赋给变量

    int x;
    x=3+5*2;
    

    赋值过程中的类型转换

    在赋值的过程中会自动的进行类型转换,将浮点型数据赋值给整型变量时,会舍弃小数部分。

    将整型数据赋值给浮点型时,数值不会发生变化,但是会以指数形式存储到变量中。

    将double型数据给float型数据赋值时,要注意数值范围不能溢出。

    字符型数据赋值给整型变量时,是将字符在ASCII码表中的值赋给了整型变量。

    将int,short,long型数据赋给char型变量时,是将其低8位原封不动的送到char型变量。

    将signed型数据赋给长度一样的unsigned型变量时,将存储单元内容原样赋过去。

    复合赋值运算符

    x+=4; //等价于x=x+4
    x*=y+1; //等价于x=x*(y+1)
    

    C++使用复合运算符可以简化程序,使之更加精炼,提高编译效率。

    赋值表达式

    将一个变量和一个表达式连接起来的式子可以称为赋值表达式。

    一般形式

    <变量><赋值运算符><表达式>

    x=y=z=2; //赋值表达式的值为2,xyz值都为2
    x=1+(y=2); //表达式值为3,y的值为2,=右边值为3
    

    案例:将有符号数据赋值给无符号变量,并输出。

    #include<iostream>
    using namespace std;
    int main()       //主函数
    {
      unsigned short num_1; //定义无符号变量
      short int num_2=-10; //定义有符号的短整型变量且赋值
      num_1=num_2; //赋值
      cout<<num_1<<' '<<num_2<<endl; //输出
      return 0;
    }
    

    执行本程序之后,则会输出65526 -10。

    会先获取-10的补码,16个二进制位,将它传给num_1,num_1是无符号型变量,补码的16个二进制位的十进制是65526。

    2.3 C++赋值运算符与表达式 | 将有符号数据赋给无符号mp.weixin.qq.com
    展开全文
  • 赋值运算符 ...如果赋值运算符两侧的类型一致,但都是数值型或字符型时,在赋值时会自动进行类型转换。 1) 将浮点型数据(包括单、双精度)赋整型变量时,舍弃其小数部分。 2) 将整型数据赋

    赋值运算符

    赋值符号“=”就是赋值运算符,它的作用是将一个数据赋给一个变量。如“a=3”的作用是执行一次赋值操作(或称赋值运算)。把常量3赋给变量a。也可以将一个表达式的值赋给一个变量。

    赋值过程中的类型转换

    如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时会自动进行类型转换。

    1)  将浮点型数据(包括单、双精度)赋给整型变量时,舍弃其小数部分。

    2)  将整型数据赋给浮点型变量时,数值不变,但以指数形式存储到变量中。

    3) 将一个double型数据赋给float变量时,要注意数值范围不能溢出。

    4)  字符型数据赋给整型变量,将字符的ASCII码赋给整型变量。

    5) 将一个int、short或long型数据赋给一个char型变量,只将其低8位原封不动地送到char型变量(发生截断)。例如
    short int i=289;
    char c;
    c=i; //将一个int型数据赋给一个char型变量
    赋值情况见图2.8。为方便起见,以一个int型数据占两个字节(16位)的情况来说明。


    图2.8

    6) 将signed(有符号)型数据赋给长度相同的unsigned(无符号)型变量,将存储单元内容原样照搬(连原有的符号位也作为数值一起传送)。

    【例2.5】将有符号数据传送给无符号变量。

    复制纯文本新窗口
    1. #include <iostream>
    2. using namespace std;
    3. int main( )
    4. {
    5. unsigned short a;
    6. short int b=-1;
    7. a=b;
    8. cout<<“a=”<<a<<endl;
    9. return 0;
    10. }
    #include <iostream>
    using namespace std;
    int main( )
    {
      unsigned short a;
      short int b=-1;
      a=b;
      cout<<"a="<<a<<endl;
      return 0;
    }

    运行结果为
    a=65535

    赋给b的值是-1,怎么会得到65535呢?请看图2.9所示的赋值情况。


    图2.9

    -1的补码形式为1111111111111111(即全部16个二进制位均为1),将它传送给a,而a是无符号型变量,16个位全1是十进制的65535。如果b为正值,且在0~32767之间,则赋值后数值不变。

    不同类型的整型数据间的赋值归根结底就是一条:按存储单元中的存储形式直接传送。

    C和C++使用灵活,在不同类型数据之间赋值时,常常会出现意想不到的结果,而编译系统并不提示出错,全靠程序员的经验来找出问题。这就要求编程人员对出现问题的原因有所了解,以便迅速排除故障。

    复合的赋值运算符

    在赋值符“=”之前加上其他运算符,可以构成复合的运算符。如果在“=”前加一个“+”运算符就成了复合运算符“+=”。例如,可以有
    a+=3  等价于  a=a+3
    x*=y+8等价于  x=x*(y+8)
    x%=3  等价于  x=x%3
    以“a+=3”为例来说明,它相当于使a进行一次自加3的操作。即先使a加3,再赋给a。同样,“x*=y+8”的作用是使x乘以(y+8),再赋给x。

    为便于记忆,可以这样理解:

    1. a+= b(其中a为变量,b为表达式)
    2. a+= b (将有下划线的“a+”移到“=”右侧)
    3. a = a + b  (在“=”左侧补上变量名a)

    注意,如果b是包含若干项的表达式,则相当于它有括号。如

    1. x %= y+3
    2. x %= (y+3)
    3. x = x%(y+3)(不要错认为x=x%y+3)

    凡是二元(二目)运算符,都可以与赋值符一起组合成复合赋值符。C++可以使用以下几种复合赋值运算符:
    +=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=
    其中后5种是有关位运算的。

    C++之所以采用这种复合运算符,一是为了简化程序,使程序精炼,二是为了提高编译效率(这样写法与“逆波兰”式一致,有利于编译,能产生质量较高的目标代码)。专业的程序员在程序中常用复合运算符,初学者可能不习惯,也可以不用或少用。

    赋值表达式

    由赋值运算符将一个变量和一个表达式连接起来的式子称为“赋值表达式”。它的一般形式为:
    <变量> <赋值运算符> <表达式>
    如“a=5”是一个赋值表达式。对赋值表达式求解的过程是:先求赋值运算符右侧的“表达式”的值,然后赋给赋值运算符左侧的变量。一个表达式应该有一个值。赋值运算符左侧的标识符称为“左值”(left value,简写为lvalue)。并不是任何对象都可以作为左值的,变量可以作为左值,而表达式a+b就不能作为左值,常变量也不能作为左值,因为常变量不能被赋值。

    出现在赋值运算符右侧的表达式称为“右值”(right value,简写为rvalue)。显然左值也可以出现在赋值运算符右侧,因而左值都可以作为右值。如:
    int a=3,b,c;
    b=a;// b是左值
    c=b;// b也是右值
    赋值表达式中的“表达式”,又可以是一个赋值表达式。如
    a=(b=5)
    下面是赋值表达式的例子:
    a=b=c=5  (赋值表达式值为5,a,b,c值均为5)
    a=5+(c=6)(表达式值为11,a值为11,c值为6)
    a=(b=4)+(c=6)  (表达式值为10,a值为10,b等于4,c等于6)
    a=(b=10)/(c=2) (表达式值为5,a等于5,b等于10,c等于2)
    请分析下面的赋值表达式:
    (a=3*5)=4*3
    赋值表达式作为左值时应加括号,如果写成下面这样就会出现语法错误:
    a=3*5=4*3
    因为3*5不是左值,不能出现在赋值运算符的左侧。

    赋值表达式也可以包含复合的赋值运算符。如
    a+=a-=a*a
    也是一个赋值表达式。如果a的初值为12,此赋值表达式的求解步骤如下:

    1. 先进行“a-=a*a”的运算,它相当于a=a-a*a=12-144=-132。
    2. 再进行“a+=-132”的运算,它相当于a=a+(-132)=-132-132=-264。
    展开全文
  • 01字符串的引用方式1、在C程序中,字符串是存放在字符...4、通过字符数组名或字符指针变量可以输出一个字符串,而对一个数值型数组,是能企图用数组名输出它的全部元素的。02字符指针作函数参数1、如果想把一个...
  • 赋值运算符 赋值符号“=”就是赋值...如果赋值运算符两侧的类型一致,但都是数值型或字符型时,在赋值时会自动进行类型转换。 1) 将浮点型数据(包括单、双精度)赋整型变量时,舍弃其小数部分。 2) 将
  • (1)将浮点数据赋整型变量时,浮点小数部分舍弃,只留下整数部分即可,例如:float a=3.141; 转换之后a =3. (2):整型数据单 双精度时,数值不变,后面加小数点即可。例如 a=3,转换之后为a=3.0 (3):...
  • 如果赋值运算符两侧的类型一致,但都是数值型或字符型时,在赋值时会自动进行类型转换。 1) 将浮点型数据(包括单、双精度)赋整型变量时,舍弃其小数部分。 2) 将整型数据赋浮点型变量时,数值不变,但以指数...
  • 常量表示能改变的数值。 Java中常量的分类: 1,整数常量。... 字符的本来面目,我们为什么可以直接将一个数字赋字符变量。 Boolean占一个字节,其取值只有两个,true和false。 等等 详细介绍用法
  • Java中的变量与常量

    2020-07-17 16:33:09
    变量 变量与内存相关 变量类型 整形变量int 长整形变量long 双精度浮点型变量double 单精度浮点型变量float ...Boolean与其他数据类型之间,是不可以进行相互转换的 数值提升 代码3会报错,因
  • Visual Basic 的基本控制结构 顺序结构各语句依次顺序执行 此前所学的语句的存在...字符型数据"0129"赋值给数值型变量时系统先自 动将字符串转换为数值再赋值但是字符不可以 非字符数据赋值给字符变量时将被转换为字
  • 虽然python中的变量需要声明,但使用时必须赋值整形变量浮点型变量字符型2:可以一个多个变量赋值,也可以多个多个变量赋值3:python3中有6个标准数据类型Number(数字)*True=1*False=0*数值的除法(/)总是返回一...
  • 这一行语句就是申明了a这一变量,并且将10赋值给a 在变量中有几个特点: 1. 变量可以多次被赋值,但以最后一次为准; 2. 可以保存任何类型的数据; 数据类型: 在ES6之后更新的全部数据类型有
  • 本文由我司收集整编,推荐...字符2:可以一个多个变量赋值,也可以多个多个变量赋值3:python3中有6个标准数据类型*Number(数字)*True=1*False=0*数值的除法(/)总是返回一个浮点数,要获取整数使用//操作符*在...
  • java的所有数值型变量可以进行相互转换,如果系统支持把某种基本类型的值直接赋值给另一种基本类型的变量,则这种方式成为自动类型转换。 当把一个表数范围较小的数值或变量直接赋给另外一个表数范围比较大的变量...
  • 数组是一个可以存储一组或一系列数值的变量(复合型变量)索引数组(索引值为数字,以0开始)和关联数组(以字符串作为索引值)数组的声明方式主要有两种。1.通过array()函数声明数组;可以通过key=>value的方式分别...
  • JAVA数值类型转换

    2020-04-08 22:19:20
    //将范围较小类型赋值给范围较大类型可以不显示完成(java自动扩展),反之,则必须显示完成(byte < short < int < long < float < double) int sum = 10; sum += 4.5; //sum = (int)(sum + 4.5) 4.5...
  • (1)传递 形参 的 实参 可以是常量、变量或表达式 例如:max(3,a+b); (2)实参 与 形参的类型应相同或赋值兼容 例如:实参为 int 而 形参x 为float,则按不同的类型数值赋值规则进行转换 2.函数...
  • Golang基础(浮点)

    2020-10-14 14:14:58
    一个整数数值可以赋值给浮点类型但是一个整型变量不可以赋值给浮点类型 浮点数进行运算的结果是浮点数 Go语言中浮点类型有两个 float32 float64 二.浮点数取值范围 float32和float...
  • Python3入门之——数值类型

    千次阅读 2020-08-19 22:02:53
    Integral类型 Python提供了两种内置的...对象的创建可以通过给变量赋字面意义上的值,或将相关的数据类型作为函数进行调用,比如x=int(17)。使用数据类型创建对象时,有3种用例: 适用参数调用数据类型函数,这种情
  • 包装类的产生原因是针对8种数值型变量进行封装处理,为了解决8种基本数据类型能被当做Object类型处理; 包装类: Byte Short Integer Long Character Float Double Boolean JDK 1.6提供了自动装箱和自动拆箱...
  • 【C++】常量

    2019-10-07 22:44:00
    注意:以下内容摘自文献[1],修改了部分内容。 1.常量:常量的值是能改变的,...但一个非负值的整数可以赋值给unsigned型变量,只要它的范围超过变量的取值范围即可。例如,将50000赋给一个unsignedshortint...
  • 1)匿名函数:即没有名字的函数。匿名函数,能单独定义的,也能单独调用。...//将数值赋值给变量a,此时变量a就是“数值型变量 var a="asd"; //将字符串赋值给a,此时变量a就是“字符型”变量 ...
  • 接下来我们定义两个变量一个int的a并且进行赋值,一个定义long的,并把a赋值给b,也就是吧int的值赋值给long的变量看可不可以? var a:Int = 4 var b:Long = a 上面的代码是编辑器中是标红的,提示类型不...
  • Java中的强制类型转换

    2020-06-13 10:52:49
    相信小伙伴们也发现了,尽管自动类型转换是很方便的,但并能...可以看到,通过强制类型转换将 75.8 赋值给int 型变量后,结果为 75,数值上并未进行四舍五入,而是直接将小数位截断。 明白了吧,强制类型转换可能...
  • 3.8 算术运算符和算术表达式; 3.8 算术运算符和算术表达式... (2)类型转换 如果赋值运算符两侧的类型一致但都 是数值型或字符型时在赋值时要进行类型 转换 如:为整型变量执行i=3.56的结果是使 的值为以整数形式存储在

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 152
精华内容 60
关键字:

不可以赋值给数值型变量