精华内容
下载资源
问答
  • C++ 结构体初始化与赋值

    万次阅读 多人点赞 2016-05-30 13:28:57
    1.CC++结构体的初始化今天看到项目中对自定义结构体初始化方式有点陌生,特在此罗列一下可用的结构体初始化的方式。对结构体struct A { int b; int c; }有几种初始化方式:第一种:struct A a = { .b = 1, ...

    在这里插入图片描述

    1.结构体初始化

    结构体是常用的自定义构造类型,是一种很常见的数据打包方法。结构体对象的初始化有多种方式,分为顺序初始化、指定初始化、构造函数初始化。假如有如下结构体。

    struct A {
    	int b;
    	int c;
    };
    

    (1)顺序初始化因为书写起来较为简约,是我们最常用的初始化方式,但相对于指定初始化,无法变更数据成员初始化顺序,灵活性较差,而且表现形式不直观,不能一眼看出 struct 各个数据成员的值。

    A a = {1, 2};
    

    (2)指定初始化(Designated Initializer)实现上有两种方式,一种是通过点号加赋值符号实现,即“.fieldname=value”,另外一种是通过冒号实现,即“fieldname:value”,其中 fieldname 为结构体成员名称 。前者是 C99 标准引入的初始化方式,后者是 GCC 的扩展。遗憾的是有些编译器并不支持指定初始化,比如 Visual C++。

    // 点号+赋值符号
    A a = {.b = 1, .c = 2};
    
    //冒号
    A a = {b:1, c:2};
    

    Linux 内核喜欢用 .fieldname=value 的方式进行初始化,使用指定初始化,一个明显的优点是成员初始化顺序和个数可变,并且扩展性好,比如在结构体非末尾处增加字段时,避免了传统顺序初始化带来的大量修改。

    (3)构造函数初始化常见于 C++ 代码中,因为 C++ 中的 struct 可以看作 class,结构体也可以拥有构造函数,所以我们可以通过结构体的构造函数来初始化结构体对象。给定带有构造函数的结构体:

    struct A {
    	A(int b,int c) {
    		this->b=b;
    		this->c=c;
    	};
    	int b;
    	int c;
    }
    

    那么结构体对象的初始化可以像类对象初始化那样:

    A a(1,2);
    

    注意: struct 如果定义了构造函数的话,就不能用大括号进行初始化了,即不能再使用指定初始化与顺序初始化了。

    2.结构体赋值

    变量的赋值和初始化是不一样的,初始化是在变量定义的时候完成的,是属于变量定义的一部分,赋值是在变量定义完成之后想改变变量值的时候所采取的操作。还是给定结构体 A:

    struct A {
    	int b;
    	int c;
    };
    

    注意: 结构体变量的赋值是不能采用大括号的方式进行赋值的,例如下面的赋值是不允许的。

    A a;
    a={1,2};	// 错误赋值
    

    下面列出常见结构体变量赋值的方法。

    (1)使用 memset 对结构体变量进行置空操作:

    // 按照编译器默认的方式进行初始化(如果 a 是全局静态存储区的变量,默认初始化为0,如果是栈上的局部变量,默认初始化为随机值)
    A a; 
    memset(&a,0,sizeof(a));
    

    (2)依次给每一个结构体成员变量进行赋值:

    A a; 
    a.b=1;
    a.c=2;
    

    (3)使用已有的结构体变量给另一个结构体变量赋值。也就是说结构体变量之间是可以相互赋值的。

    A a = {1,2};
    struct A a1;
    a1=a; 				// 将已有的结构体变量赋给a1
    

    初始化与赋值有着本质的区别,初始化是变量定义时的第一次赋值,赋值则是定义之后的值的变更操作,概念上不同,所以实现上也不一样。


    参考文献

    2016腾讯春季校园实习招聘技术岗初试(一面)问题汇总(CC++后台)
    结构体初始化
    C结构体-designated initializer
    C语言结构体声明中冒号的使用(占位符) & C结构体的乱序初始化

    展开全文
  • java创建List时候 初始赋值

    万次阅读 多人点赞 2019-08-04 17:19:07
    在这之前 可能有的读者, 只知道数组初始化 时候的赋值。 String[] strings = new String[]{ "one","two","three" }; 当创建list时候,也许 你还会写过以下代码 正确的写法 ...

    在这之前 可能有的读者, 只知道数组初始化 时候的赋值。

     String[] strings = new String[]{
                  "one","two","three"
            };
    

    当创建list时候,也许 你还会写过以下代码
    在这里插入图片描述

    正确的写法

     List<String> list = new ArrayList<>() {//这个大括号 就相当于我们  new 接口
                {//这个大括号 就是 构造代码块 会在构造函数前 调用
                    System.out.println("我是构造代码块");
                    this.add("one");//this 可以省略  这里加上 只是为了让读者 更容易理解
                    add("two");
                }
            };
            list.forEach(System.out::println);
    

    总结

    上面的 要注意 有两个{ { }}。他们每一个的作用 我在代码注释里面写的很清楚

    如果有不懂的,可以关注我的公众号 “知我饭否” 向我留言。我会每天更新一些文章,有兴趣的可以 微信 搜索"知我饭否" or 扫描我的 博客头像
    在这里插入图片描述

    展开全文
  • Java 数组、List初始赋值

    千次阅读 2021-04-15 19:38:12
    1 数组初始赋值 //第一种初始赋值方式 String[] strs1={"1","2"}; //第二种初始赋值方式 String[] strs2=new String[]{"1","2"}; 2 List初始赋值 //第一种初始赋值方式(推荐) List<String> ...

    1 数组初始化赋值

    //第一种初始化赋值方式
    String[] strs1={"1","2"};
    
    //第二种初始化赋值方式
    String[] strs2=new String[]{"1","2"};

    2 List初始化赋值

    //第一种初始化赋值方式
    List<String> strList1=Arrays.asList(new String[]{"1","2"});
    
    //第二种初始化赋值方式(推荐)
    List<String> strList2=new ArrayList(Arrays.asList(new String[]{"1","2"}));
    
    //第三种初始化赋值方式
    List<String> strList3=new ArrayList<String>{{
        add("1");
        add("2");
    }};

    注:Arrays.asList()返回的对象不支持add()和remove()方法。具体原因请参考以下博客。

    Java Arrays.asList()需要注意的坑(不支持add()和remove())icon-default.png?t=L892https://mp.csdn.net/console/editor/html/115797849

    展开全文
  • 页面加载时,给datebox初始赋值,代码如下 ``` $(function(){ $("#startTime").datebox("setValue", "2017-02-02"); }); ``` 并不起作用,但是在页面加载完成之后调用 $("#startTime").datebox("setValue", ...
  • Shell变量的初始赋值

    千次阅读 2018-06-12 22:15:24
    通常在shell中,在变量值为空的时候我们要为变量设置一个默认值,避免在脚本运行的过程中报错,这就是变量的初始赋值。 通常比较简洁的有以下两种,都能对一个变量赋予一个初始值,  ${var:=初始值}  ${var:-...

            通常在shell中,在变量值为空的时候我们要为变量设置一个默认值,避免在脚本运行的过程中报错,这就是变量的初始值赋值。

    通常比较简洁的有以下两种,都能对一个变量赋予一个初始值,

        ${var:=初始值}

        ${var:-初始值}

     

    但是不同的是 ${var:-初始值} 只是临时调用,变量var并不改变,仍然为空;

    而 ${var:=初始值} 调用初始值后,变量var也赋予了一个值。

    shell代码运行如下:

    [root@server0 ~]# a=${b:-12}
    [root@server0 ~]# echo $a
    12
    [root@server0 ~]# echo $b
    
    
    [root@server0 ~]# a=${b:=12}
    [root@server0 ~]# echo $a
    12
    [root@server0 ~]# echo $b
    12
    

     

     

    展开全文
  • Java HashMap 初始赋值

    万次阅读 2018-01-31 14:35:41
    转自:... 1、HashMap 初始化的文艺写法 看完这段代码,很多人都会觉得这么写太啰嗦了,文艺青年一般这么来了: HashMap map = new HashMap() {  {  map.put("name", "test");  
  • 在bean中使用property标签进行初始赋值,这种赋值方式会调用bean对象中的set方法进行赋值操作,它会先调用参构造器创建对象,然后调用set方法进行赋值操作 验证测试: 添加参构造器和打印输出,为set方法添加...
  • CascadingDropDown三级联动,初始赋值应用
  • vue+antd+select下拉初始赋值

    千次阅读 2019-11-19 11:04:36
    antd的功能是挺好的,但是在他的下拉这里初始赋值是很不友好的,我这里的需要时新增置空,修改赋值的需求,他的自带功能defaultValue满足不了需要,他只在创建的时候赋值一次,我们修改就需要每次点击都赋值上去...
  • java的map实例化时初始赋值

    千次阅读 2019-08-10 15:08:39
    java的map实例化时初始赋值 解决方法: HashMap<String, String> ext = new HashMap<String, String>(){ { 初始赋值:http://www.yayihouse.com/yayishuwu/chapter/2084 } }; ...
  • golang map初始赋值

    千次阅读 2019-08-26 11:19:19
    map必须使用make分配内存,nil map无法赋值
  • 数组初始赋值

    千次阅读 2016-06-27 17:05:22
    1、创建数组后,通过循环对数组赋值。 例如代码: int [] nums = new int [100]; for(int i=0;i nums[i] = i; } 2、例如代码: int [] nums = {0,1,2,3,4,5,6,7,8,9}; 3、int [] nums = new int[]{0,1,2,3,4...
  • 字符串初始赋值

    千次阅读 2019-04-27 17:45:17
    (1)直接逐个初始化字符数组:字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。 char str[10]={ ‘I’,’ ‘,‘a’,‘m’,’ ‘,‘h’,‘a’,‘p’,‘p’,‘y’}; 注意:如果花括号中提供的字符...
  • json的初始赋值格式

    千次阅读 2017-01-26 16:35:45
    json的初始赋值格式 //定义一个json var json = [{ "name": "小明", "age": 10, "sex": "男" },{ "name": "小红", "age": 12, "sex": "女" }]; //打印json第一个元素的name属性的值 ...
  • C++字符数组 定义和初始赋值和引用
  • 在Java中,null值表示引用不指向任何对象。运行过程中系统发现使用了...1.如果是对象的field的话那么系统在初始化对象的时候会把那些对象的值赋值为null,基本数据类型也有它们的初始值 2.如果是在方法内,那么程序...
  • java中类的属性初始赋值问题 类中属性没初始化情况 如果类中属性没被初始化,系统将会有个初始值 class A { public int i; public boolean g; public void add () { System.out.printf ("%d\n", i); ...
  • 集合的初始赋值

    千次阅读 2017-11-15 10:00:16
    ...1、HashMap 初始化的文艺写法 HashMap 是一种常用的数据结构,一般用来做数据字典或者 Hash 查找的容器。普通青年一般会这么初始化: HashMap map = new HashMap(); map.put("name",
  • multiselect 初始赋值

    千次阅读 2015-06-30 06:55:01
    jquery有很多插件,比如jquery.multiselect.js(多选下拉框),使用的时候非常便捷,但有的时候你遇到问题,可能非常难解决(今天解决这个问题弄了将近2个小时),一般情况下解决问题的思路可能如下:(1)百度搜索...
  • Verilog数组初始赋值

    万次阅读 2017-07-30 23:21:48
    Verilog数组表示及初始化,以三维数组为例,二维及一维应该类似; reg [19:0] array1 [0:7][0:15][0:8]; //3维数组,用来存储梯度直方图 always@(posedge clk or negedge rst_n) begin  if(!rst_n)  begin  //...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 862,863
精华内容 345,145
关键字:

初始无赋值