精华内容
下载资源
问答
  • cited from:... absfabs,abs是整数取绝对值,而fabs是指浮点数取绝对值 函数名: fabs 功 能: 返回浮点数绝对值 用 法: double fabs(double x); 程序例:  #inclu

    cited from:http://hi.baidu.com/onlymeteor/item/9ef60791efc09ff12916479a


    abs和fabs,abs是整数取绝对值,而fabs是指浮点数取绝对值


    函数名: fabs
    功    能: 返回浮点数的绝对值
    用    法: double fabs(double x);
    程序例: 

    #include <stdio.h>
    #include <math.h>     //fabs函数头文件

    int main(void)
    {
    float    number = -1234.0;

    printf("number: %f    absolute value: %f/n",
    number, fabs(number));
    return 0;
    }

    ****************************************************************************************

    函数名: abs
    功    能: 求整数的绝对值
    用    法: int abs(int i);
    程序例:
    #include<stdio.h>

    #include<stdlib.h>    //  abs函数头文件

    int main(void)
    {
        int number = -1234;

        printf("number: %d    absolute value: %d/n", number, abs(number));
        return 0;
    }

    注意:fabs(var)>=(1e-6)常用来作为判断var是否大于等于0的条件!

    展开全文
  • 虽然var和var都会将它们应用到变量增加,但var返回结果是变量在递增前值,而var返回结果是应用增量后变量值。进一步说明当var或var形成完整语句(如在你例子中),两者之间没有区别。例如下面int x = 6;...

    tldr;

    虽然var和var都会将它们应用到的变量增加,但var返回的结果是变量在递增前的值,而var返回的结果是应用增量后的变量值。

    进一步说明

    当var或var形成完整的语句(如在你的例子中),两者之间没有区别。例如下面

    int x = 6;

    ++x;

    assert x == 7;

    是相同的

    int x = 6;

    x++;

    assert x == 7;

    但是,当var或var用作较大语句的一部分时,两者可能不等效。例如,以下断言通过

    int x = 6;

    assert ++x == 7;

    而这一个失败

    int x = 6;

    assert x++ == 7;

    虽然var和var都会将它们应用到的变量增加,但var返回的结果是变量在递增前的值,而var返回的结果是应用增量后的变量值。

    当在for循环中使用时,两者之间没有差别,因为变量的增量不构成较大语句的一部分。它可能不会以这种方式出现,因为在源文件的同一行上有其他代码。但如果你仔细看,你会看到有一个;紧接在增量之前和之后没有什么,所以增量运算符不形成较大语句的一部分。

    展开全文
  • 在使用mysql时,int、charvarcahr这几种类型是比较常用。在大学时有学过数据库,对于int(N)、char(N)varchar(N)中N一直了解不是较透彻,前段时间在网上查了很多资料,现在整理下。1、int(N)int(N) ,N ...

    在使用mysql时,int、char和varcahr这几种类型是比较常用的。在大学时有学过数据库,对于int(N)、char(N)和varchar(N)中的N一直了解的不是较透彻,前段时间在网上查了很多资料,现在整理下。

    1、int(N)

    int(N) ,N 表示最大显示宽度(字段设置zerofill属性时可查看区别),不指定N时,默认为11。N 的值跟 int(N) 所占多少存储空间或最大能存储多大长度数据并无任何关系。也就是说 int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。

    1)创建测试表tb1,字段id1显示宽度为3,id2的显示宽度为5

    mysql> create table tb1 (id1 int(3),id2 int(5));

    Query OK, 0 rows affected (0.08 sec)

    2)向测试tb1中插入数据。向其中插入数据12345,其数据字符宽度大于id2设置的显示宽度4。

    mysql> insert into tb1 values (12,12345);

    Query OK, 1 row affected (0.03 sec)

    在执行数据插入操作后,无任何错误或警告提示。

    3)查看插入的数据。

    mysql> select * from tb1;

    +------+-------+

    | id1  | id2   |

    +------+-------+

    |   12 | 12345 |

    +------+-------+

    1 row in set (0.00 sec)

    由上可知,实际插入的数据宽度大于显示宽度时,数据可正常插入表格中,数据未被截断。

    那int(3)和int(5)到底有什么区别呢?

    4)建一个新表tb2,与表tb1的区别是,id1和id2字段都设置了zerofill参数。

    mysql>  create table tb2 (id1 int(3) zerofill,id2 int(5) zerofill);

    Query OK, 0 rows affected (0.08 sec)

    5)向tb2中插入与tb1中同样的数据。

    mysql> insert into tb2 values(12,12345);

    Query OK, 1 row affected (0.05 sec)

    6)查看表tb2的内容。

    mysql> select * from tb2;

    +------+-------+

    | id1  | id2   |

    +------+-------+

    |  012 | 12345 |

    +------+-------+

    1 row in set (0.00 sec)

    相比于tb1,在插入id1字段的数字12前多了个0。

    再插入一个数据测试下;

    mysql> insert into tb2 values(123,123);

    Query OK, 1 row affected (0.04 sec)

    mysql> select * from tb2;

    +------+-------+

    | id1  | id2   |

    +------+-------+

    |  012 | 12345 |

    |  123 | 00123 |

    +------+-------+

    2 rows in set (0.00 sec)

    此时在id插入的数据前多了两个0。

    所以给字段加了zerofill参数后,如果实际插入的数据宽度小于字段设置的显示宽度N时,将自动在数字前填充0。同时,如果插入的数据宽度大于设置的显示宽度N时,不会出现数据无法插入或数据被截断的情况。

    2、char(N)与varchar(N)

    char(N)和varchar(N)最大的区别在于存储需求空间上的区别上,前者为固定长度,存储需求为N字符长度。

    后者为可变长度(“var”意为“variable”,可变的),存储需求为实际值的长度+1(如果N>255,则+2)。

    char(N)的N取值范围为255。

    mysql> create table t3 (c char(350),v varchar(5));

    ERROR 1074 (42000): Column length too big for column 'c' (max = 255); use BLOB or TEXT instead

    varchar(N)的N取值范围为65535,超过了自动转换为text类型。

    mysql> create table t7 (c char(30),v varchar(65536));

    Query OK, 0 rows affected, 1 warning (0.07 sec)

    mysql> show warnings ;

    +-------+------+--------------------------------------------+

    | Level | Code | Message                                    |

    +-------+------+--------------------------------------------+

    | Note  | 1246 | Converting column 'v' from VARCHAR to TEXT |

    +-------+------+--------------------------------------------+

    1 row in set (0.00 sec)

    mysql> show create table t7 \G

    *************************** 1. row ***************************

    Table: t7

    Create Table: CREATE TABLE `t7` (

    `c` char(30) DEFAULT NULL,

    `v` mediumtext

    ) ENGINE=InnoDB DEFAULT CHARSET=utf8

    1 row in set (0.00 sec)

    其中N,不管针对char还是varcahr均有最大字符长度不允许超过N的意思,接下来测试一下。

    1)建表tb1.

    mysql> create table tb1 (c char(3),v varchar(5));

    Query OK, 0 rows affected (0.08 sec)

    2)向表中插入数据,实际要插入的数据大于设置的最大字符长度,插入数据时,产生了报警。

    mysql> insert into tb1 values('1234','123456');

    Query OK, 1 row affected,

    2 warnings(0.03 sec)

    查看报警内容,内容显示,针对字段c和字段v插入的数据被修剪了。

    mysql> show warnings;

    +---------+------+----------------------------------------+

    | Level   | Code | Message                                |

    +---------+------+----------------------------------------+

    | Warning | 1265 | Data truncated for column 'c' at row 1 |

    | Warning | 1265 | Data truncated for column 'v' at row 1 |

    +---------+------+----------------------------------------+

    2 rows in set (0.00 sec)

    再看下报表内容,数据确实被修剪。修剪后保留的长度为设置的N值长度。

    mysql> select * from tb1;

    +------+-------+

    | c    | v     |

    +------+-------+

    | 123  | 12345 |

    +------+-------+

    1 row in set (0.00 sec)

    如果将sql  mode设置为TRADITIONAL模式,上面的数据是无法插入的。

    mysql> set @@sql_mode=TRADITIONAL;

    Query OK, 0 rows affected (0.00 sec)

    mysql> create table t2 (c char(3),v varchar(5));

    Query OK, 0 rows affected (0.08 sec)

    mysql> insert into t2 values('1234','123456');

    ERROR 1406 (22001): Data too long for column 'c' at row 1

    mysql> select * from t2;

    Empty set (0.00 sec)

    3、varchar(50)和varchar(100)是否一样?

    硬盘存储需求一样,内存需求不一样。即对于VARCHAR数据类型来说,硬盘上的存储空间是根据实际字符长度来分配存储空间的,而对于内存来说,是使用N个字符空间的内存块来保存值,即varchar(50)占用50个字符内存空间,varchar(100)占用100个字符内存空间。

    展开全文
  • val和var的区别

    2020-02-28 15:24:12
    二.val(value)和var(variable)的区别 基本语法: var|val 变量名 : 变量类型 = 变量值 1.使用var或者val定义一个变量。 使用var(variable)声明变量,可以被重新赋值,引用可以变。 // 定义变量a2,手动指定类型为Int...

    美图欣赏:
    在这里插入图片描述
    一.背景

    学习过程中,会有很多小的并且容易混淆知识点,因此会把它记录下来。

    二.val(value)和var(variable)的区别

    基本语法:

    var|val 变量名 : 变量类型 = 变量值
    

    1.使用var或者val定义一个变量。

    使用var(variable)声明变量,可以被重新赋值,引用可以变

    // 定义变量a2,手动指定类型为Int,此时需要保证所赋值类型匹配
    scala> var i2:Int = 2                                                                        
    i2: Int = 2
    // 变量间可以互相赋值,并可以使用var重新定义
    scala> i2 = 3 
    i2: Int = 3                                                                                     
                                                                                                                                                                                   
    

    2.使用val(value)声明常量, 引用不可变

    val修饰的变量,相当于Java中final修饰的变量;
    注意:是引用不可变

    scala> val a = 2
    a: Int = 2
    scala> a
    res5: Int = 2
    
    scala> a = 3
    <console>:12: error: reassignment to val
           a = 3
    

    再次定义一个新的常量val ,是可以的

    scala> val a = 8
    a: Int = 8
    

    三.举个Map的例子

    1.在val中 map的值是可以变的,但是map的引用依然没有变

    2.在var中,map的值是可以变的,但是map的引用可以变

    
    scala> val map = scala.collection.mutable.Map(("Jackson",10000),("Tom",2000))
    map: scala.collection.mutable.Map[String,Int] = Map(Jackson -> 10000, Tom -> 2000)
    
    scala> map("Jackson") = 20000
    
    scala> map
    res4: scala.collection.mutable.Map[String,Int] = Map(Jackson -> 20000, Tom -> 2000)
    
    scala> var map = scala.collection.mutable.Map(("Jackson",10000),("Tom",2000))
    map: scala.collection.mutable.Map[String,Int] = Map(Jackson -> 10000, Tom -> 2000)
    
    scala> map("Jackson") = 30000
    
    scala> map
    res7: scala.collection.mutable.Map[String,Int] = Map(Jackson -> 30000, Tom -> 2000)
    
    
    
                                 ————保持饥饿,保持学习
                                       Jackson_MVP
    
    展开全文
  • Python支持四种不同数值类型,包括int(整数)long(长整数)float(浮点实际值)complex (复数),数字数据类型存储数值。他们是不可改变数据类型,这意味着改变数字数据类型结果,在一个新分配对象值。Number...
  • var vGo int var vC C.int // fails to compile with error // cannot use &vGo (type *int) as type *C.int in argument to... C.c_function(&vGo) // compiles just fine: C.c_function(&vC) ...
  • scala中val和var的区别

    2019-05-06 08:43:28
    一想到这两个的区别,大多数人第一反应就是,var 修饰的变量可改变,val 修饰的变量不可改变;但真的如此吗?事实上,var 修饰的对象引用可以改变,val 修饰的则不可改变,但对象的状态却是可以改变的。例如: ...
  • 在scala 中,定义变量有两种 val var  var 值可以改变. 代码如下: scala&gt; var o = 100 o: Int = 100 scala&gt; o = 190 o: Int = 190 val 值不可以改变. 代码如下:(会报错) ​ scala&...
  • const int *p和int * const p的区别(常量指针与指向常量的指针) int main() {  int var1 = 10;  int var2 = 20;  int * const p = &var1;// p是指针式常量;  //p = &var1;  *p= 60; // p不能指向另...
  • var p = []int{1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024} for i, v := range p { fmt.Println(i, v) } } </code></pre> <p>What's the primary difference in both the programs compilation, memory ...
  • spark scala中的var val、def区别对比 一、最直观就是:val定义变量不能被再次赋值,而var定义可以,见下图 scala> val s=10 s: Int = 10 scala> s=11 <console>:27: error: reassignment...
  • Kotlin: val和var的区别

    千次阅读 2017-05-24 10:38:06
    val用于声明常量/** * 声明常量 */ fun main(args: Array){ val a: Int = 1 //立即初始化 ... val c: Int //当没有初始化值时候必须声明类型 c = 3 //赋值 }var用于声明变量/** * 变量 */ fun main(args: Array
  • kotlin中val和var的区别【笔记感悟】

    千次阅读 2018-09-14 11:09:23
    分别用var和val初始化两个值 var i:Int=6; val j:Int=10; 看起来没什么问题,但是在使用时候问题就来了,如下代码: var i:Int=6; val j:Int=10; //重新给i 和 j 赋值 i=100; j=300;//此处会编译报错,此处...
  • android Kotlin: val和var的区别

    千次阅读 2017-06-28 10:48:51
    val用于声明常量 /** * 声明常量 */ fun main(args: Array){ val a: Int = 1 //立即... val c: Int //当没有初始化值时候必须声明类型 c = 3 //赋值 }var用于声明变量 /** * 变量 */ fun main(args: Array){
  • c语言指针小析以及var++++var的区别

    千次阅读 2012-09-05 12:00:52
    c语言指针小析以及var++++var的区别  有两个相关的运算符:(1)&:取地址运算符  (2)&:指针运算符(或称“间接访问”运算符)  设a是定义的一个int类型变量,p1,p2是两个int类型指针,如:int a;int *...
  • 直接看代码 ...var ff []int f:=[]int{} fmt.Println(ff==nil) // true fmt.Println(len(ff),cap(ff)) //0 0 fmt.Println(f==nil) //false fmt.Println(len(f),cap(f)) //0 0 } 输出: true 0 0 0 0 false
  • 关于val 和var 的区别(反编译查看其类的属性特征) class TheStudent(id : Int, name : String){ // val是只读属性 val age:Int get() = 26 // var默人有getset方法,返回域(构造器上) var id : Int = id ...
  • var和val var:可变变量 var <标识符> : <类型> = <初始化值> 例: var a :Int? = 10 var b = 10 (编译器支持自动类型判断) var list :ArrayList<String> ? = null val:不可...
  • 1算术(+ ,-, *, /, %)等等 ...res17: Int = 9 scala> 45+76 res18: Int = 121 scala> 88/4 res19: Int = 22 scala> 76*5 res20: Int = 380 scala> 786-43 res21: Int = 743 scala> 65%8 ...
  • var和val的区别很好理解,val类型的变量指的是引用不可更改,类似于java变量加了final修饰,但是引用对象内容可以改变 scala> val map = scala.collection.mutable.Map(1->"x", 2->"y") map: scala....
  • 在Swift中,将String的字符串数字转换成整形数值可以使用toInt() 或者 integerValue,二者有一些细微的区别 1. integerValue 是 NSString 类的扩展,在Swift 1.2 之后(包含)String 对象也可以直接使用。 @...
  • 1.echo print 的区别 共同点:首先echo print 都不是严格意义上的函数,他们都是 语言结构;他们都只能输出 字符串,整型跟int型浮点型数据。不能打印复合型资源型数据; 而区别是:echo 可以连续输出多个...
  • 正如许多其他人所说,分配给 val 对象无法替换,并且分配给 var 对象可以 . 但是,所述对象可以修改其内部状态 . 例如:class A(n: Int) {var value = n}class B(n: Int) {val value = new A(n)}object Test {...
  • 1.echo print 都是语言结构,只能输出简单类型值(int,string),它们在输出数组时提示Notice错误,输出对象时提示Catchable fatal error。两者唯一不同是echo支持输出多参数,print只能输出一个参数。 2.print...
  • var_dumpvar_dump用于debug,它会输出结果里数据类型。var_dump(array('', false, 42, array('42')));输出结果array(4) {[0]=> string(0) ""[1]=> bool(false)[2]=> int(42)[3]=> array(1) {[0]=>...
  • var_dump 判断一个变量类型与长度如: <? $a = 1; $b = 't'; echo var_dump($ta,$tb); // 结果为 int(123) string(3) "abc" ?>echo仅输出变量或字串 <? $a = "abc"; echo $a; //输出 abc//or echo "abc...
  • print功能echo基本相同,有返回值 只能打印出简单类型变量值(如int,string),如果字符串显示成功则返回true,否则返回false print_r和var_dump是函数,用于输出数组对象 print_r 可以打印出复杂类型变量...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 556
精华内容 222
关键字:

var和int的区别