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.是否传入了,局部变量。

  • 相关阅读:
    Android中this.*与*.this还有*.class的区别是什么?
    多线程之CEvent
    Java类型信息之RTTI
    javascript学习-闭包
    javascript学习-对象与原型
    javascript学习-类型判断
    Javascript学习-简单测试环境
    javascript学习-目录
    MySQL数据库安装与配置详解
    深入研究C语言 第四篇
  • 原文地址:https://www.cnblogs.com/wendao/p/2785161.html
Copyright © 2011-2022 走看看