zoukankan      html  css  js  c++  java
  • 随笔

    关于值传递,和地址传递:
    一开始,就太注重概念,而忘了实质的东西。写了1年c++还犯这种错误,不应该啊!
    函数实质上都是把值(地址其实也是一种值),push进栈。
    例子 class *a = NULL;
    void func(class *a) {
    a = new class;
    }
    出来的a的值依然是NULL。对class *a 理解时,作为a就是一个存地址的变量就好了。(想想当时写程序竟然犯这样的错误,而且自己当时竟然,浑然不知,理所当然的认为对)

    如果想通过这种方法,给a赋值,应该这样写:
    class *a = NULL;
    void func(class **a) {
    *a = new class;
    }
    func(&a);
    这里把a的地址push进函数。

    线程:
    将线程外部的变量的地址,传入线程内时一定要注意,外部变量的生命周期。否则,可能产生,变量没了,而线程内部还可能继续使用它。
    组织程序,总是掌握不好,事前合理的规划,传进去了,指针了,测试才想起来,外部的变量,删除了。就改为复制对象,复制好几遍,十分令人讨厌,复制那么多有必要吗?

    写多线程的程序时候,应该考虑的问题:
    1.全局变量(相对)的同步问题。
    2.是否传入了,局部变量。

  • 相关阅读:
    深度学习的优化算法
    基于双向的CNN的细粒度物体识别论文翻译
    LSTM公式推导
    结巴分词python脚本
    eval() python 中的
    C++编译原理
    extern,以及在linux头文件中的应用
    iostream源码
    LINUX命令
    apt-get
  • 原文地址:https://www.cnblogs.com/wendao/p/2785161.html
Copyright © 2011-2022 走看看