c++初始化和赋值的区别
静态对象的声明及初始化不是赋值
声明(并缺省初始化)后再赋值
#include <iostream>
#include <string>
void fun(std::string input)
{
static int x; // 声明(及缺省初始化),因为声明为静态对象,所以只执行一次
x = 3; // 赋值, 第二次fun()被调用依然会被执行
std::cout << input << ": " << x << std::endl;
x = 4;
}
int main()
{
fun("first");
fun("second");
}
>>>
first: 3
second: 3
声明并初始化后不赋值
#include <iostream>
#include <string>
void fun(std::string input)
{
static int x = 3; // 声明并初始化为3,因为声明为静态对象,所以只执行一次
std::cout << input << ": " << x << std::endl;
x = 4;
}
int main()
{
fun("first");
fun("second");
}
>>>
first: 3
second: 4
如果不声明为静态对象:
#include <iostream>
#include <string>
void fun(std::string input)
{
int x = 3;
std::cout << input << ": " << x << std::endl;
x = 4;
}
int main()
{
fun("first");
fun("second");
}
>>>
first: 3
second: 3
c++初始化和赋值的区别的更多相关文章
- C++ 初始化与赋值
1.初始化与赋值的区别: 二者的区别不是看,是否有=这个赋值操作符,而是看操作的时候,对象是否已经有值. 初始化:创建对象,并给它设置初始值. 赋值:对象已经有值,擦除对象的当前值,并使用新值代替. ...
- (转)C++初始化与赋值
来源:http://www.cnblogs.com/chio/archive/2008/10/06/1305145.html 先来个区别说明:赋值操作是在两个已经存在的对象间进行的,而初始化是要创建一 ...
- 百度编辑器ueditor 异步加载时,初始化没办法赋值bug解决方法
百度编辑器ueditor 异步加载时,初始化没办法赋值bug解决方法 金刚 前端 ueditor 初始化 因项目中使用了百度编辑器——ueditor.整体来说性能还不错. 发现问题 我在做一个编辑页面 ...
- php中引用和赋值的区别主要在哪里
php中引用和赋值的区别 <pphp 的引用允许用两个变量来指向同一个内容. 相当于他们可以是 不同的名字,却可以指向 同一个 物理空间. 赋值,它实际上意味着把右边表达式的值赋给左边的运算数. ...
- C语言指针的初始化和赋值
1.指针的初始化 指针初始化时,"="的右操作数必须为内存中数据的地址,不能够是变量,也不能够直接用整型地址值(可是int*p=0;除外,该语句表示指针为空).此时,*p仅仅是表示 ...
- c/c++ 标准容器 之 初始化, 赋值, swap, 比较
c/c++ 标准容器 之 初始化, 赋值, swap, 比较 知识点 1,容器的初始化,对应代码里的test1 2,标准库array的初始化,对应代码里的test2 3,容器的赋值 ,对应代码里的te ...
- java中String new和直接赋值的区别
Java中String new和直接赋值的区别 对于字符串:其对象的引用都是存储在栈中的,如果是编译期已经创建好(直接用双引号定义的)的就存储在常量池中,如果是运行期(new出来的)才 ...
- 通过set赋值,与select赋值的区别
---通过set赋值,与select赋值的区别.declare @a int--set @a=(select count(*) from TblStudent)select @a=count(*) f ...
- GO学习笔记 - 变量在定义时没有明确的初始化时会赋值为“零值 ”。
官方教程:https://tour.go-zh.org/basics/12 变量在定义时没有明确的初始化时会赋值为 零值 . 零值是: 数值类型为 0 , 布尔类型为 false , 字符串为 &qu ...
- C语言结构体数组内带字符数组初始化和赋值
1.首先定义结构体数组: typedef struct BleAndTspRmtCmd{ char terminal[3]; char note[3]; char rmtCmd[10]; char c ...
随机推荐
- .gitattributes 作用详细讲解
https://blog.csdn.net/qq_35425070/article/details/106883833 *.fbx filter=lfs diff=lfs merge=lfs -tex ...
- unity通过隐藏layer隐藏组件
设置组件layer 修改组件layer为需要隐藏的layer 隐藏组件 修改layer为隐藏状态 CenterCam.GetComponent<Camera>().cullingMask ...
- R包本地安装方法
问题 需要安装一个R的测试包 但是这个包没有在cran中 也没有在biomanager中 于是决定使用devtools-github安装 遇到问题 无法下载github上的R包 策略 使用local方 ...
- fabric学习笔记11
fabric学习笔记10 20201303张奕博 2023.1.23 测试实践2 导入链码依赖包 package main import ( "github.com/hyperledger/ ...
- Windows清除DNS缓存
第一步,刷新DNS WIN+R 输入cmd 再输入ipconfig/flushdns 第二步,恢复默认 输入netsh winsock reset 重启电脑.
- 新手必学matplotlib
Getting started Installation quick-start Install using pip: pip install matplotlib Install using con ...
- go语言 cmd执行命令,遇到空格或者双引号无法执行成功的解决方案
大部分go执行cmd命令都是,我也是这样写的 package main import ( "fmt" "os/exec" ) func main() { cmd ...
- Oracle备份脚本(数据泵)-Windows平台
将以下内容根据自己想要备份的库修改后保存为expdp.bat,加入到计划任务中 set NLS_LANG=AMERICAN_AMERICA.AL32UTF8set filename=%date:~0, ...
- Linux 部署apache2.4
apache httpd-2.4.46.tar.gz部署环境 Linux6.5 依赖包: apr-1.6.3.tar.gz apr-util-1.5.2.tar.gz 先部署apr 1.tar -xf ...
- 【面试题】面试突击71:GET 和 POST 有什么区别?
携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第4天,点击查看活动详情 GET 和 POST 是 HTTP 请求中最常用的两种请求方法,在日常开发的 RESTful 接口中,都能 ...