C基础(五)作用域和内存管理
目录
- 一、作用域
- 1.1 作用域和生命周期
- 二、内存区域划分
- 三、堆内存的分配和释放
- 3.1 malloc分配堆内存
- 3.2 free释放堆内存
- 3.3 思考:解决函数返回值是指针的问题
- 方案一: 返回一个在堆内存分配的地址指针变量
- 方案二: 在函数调用处定义自变量
- 3.4 思考:局部静态变量和常量所指向的地址的值出了作用域还能访问吗?
- 3.5 案例:使用堆内存解决strcat追加字符串无法提前预知内存大小的申请问题
- 3.6 calloc分配指定大小的堆内存
- 3.7 realloc重新分配新的堆内存
- 3.8 正确处理函数内分配堆内存的问题
一、作用域
一个C语言变量的作用域可以是代码块作用域、函数作用域、或者文件作用域;代码块是{}直接的一段代码,出现{}之外的变量就是全局变量, 同一个作用域不能出现重名的变量,但是不同作用域是可以的。
#include<stdio.h>int a = 2;//文件作用域int main()
{int a = 0;//函数作用域{int a = 1;//代码块作用域}printf("%d\n",a); //优先访问当前作用域的变量,也就是a=0return 0;
}
当函数作用域的变量名和文件作用域的变量名一样时,函数作用域的变量优先被当前函数访问。
1.1 作用域和生命周期
类型 | 作用域 | 生命周期 |
---|---|---|
auto变量 | 一对{}内 | 当前函数内 |
static局部变量 | 一对{}内 | 整个程序运行期间 |
extern变量 | 整个程序内 | 整个程序运行期间 |
static全局变量 | 当前文件内 | 整个程序运行期间 |
extern函数 | 整个程序内 | 整个程序运行期间 |
static函数 | 当前文件内 | 整个程序运行期间 |
register变量 | 一对{}内 | 当前函数内 |
auto自动变量
一般情况下代码块内部定义的变量都是自动变量,当然也可以显示的使用auto关键字。auto变量是自动在内存中出现和消失的,不需要我们管理内存。 文件作用域的变量就不是auto变量了,静态变量也不是auto变量。
register寄存器变量
通常变量在内存当中,如果能把变量放到CPU的寄存器里面,代码的执行效率会更高,例如:register int I;
静态变量
静态变量分为局部静态变量和全局静态变量,静态变量的内存位置在程序执行期间一直不改变的变量。C语言的静态变量是可以定义在代码块和函数内的,这点和java是不同的,java的static只能出现在类的成员位置上。静态变量在程序刚加载到内存的时候就出现了,所以和定义静态变量所在的{}无关,一直到程序结束的时候才会从内存中消失,同时静态变量只会初始化一次。
局部静态变量只能被这个代码块内部访问,而全局静态变量只能被当前文件任意位置访问。
局部静态变量
局部静态变量是指定义在代码块的作用域内的静态变量。
#include<stdio.h>void test()
{static int a = 0; //静态变量只会初始化一次,和{}无关 ,它只能被test函数使用,其他函数无法使用.a++;printf("a=%d\n",a);
}int main()
{int i;for(i = 0;i<10;i++){test(); //调用上面的test方法}//printf("main call a=%d\n",a);无法访问代码块内的静态变量,编译直接报错return 0;
}
结果如下:
a=1
a=2
a=3
a=4
a=5
a=6
a=7
a=8
a=9
a=10
可以看到a的值是会一直累加的且初始化一次后不会重新初始化,它的生命周期是随程序的。
全局静态变量
代码块作用域外的静态变量叫静态全局变量,它在程序执行期间一直存在,但只能被定义这个变量的文件访问,其他文件无法使用extern关键字访问。
#include<stdio.h>static int a = 0;void test()
{a++;
}int main()
{test();printf("a=%d\n",a);// a=1 //静态全局变量可以被当前文件任意位置访问,和全局变量一样,但是全局变量还可以被其他文件访问,作用范围最大a++; printf("a=%d\n",a);// a=2return 0;}
全局变量
在文件作用域定义的变量叫做全局变量(文件变量), 全局变量的存储方式和静态变量相同,但可以被多个文件通过extern关键字访问。
外部变量与extern关键字
外部变量是指定义在非当前文件中的全局变量,也就是说定义在其他的C文件中的变量(也叫全局变量), 如果要使用其他C文件中定义的全局变量,则需要在当前文件中使用extern关键字声明一下。
extern int i //声明一个外部变量
同时使用gcc编译的时候,需要将外部变量所在的c文件一起编译,例如:
gcc -o a men2.c mem3.c
同样的,如果要使用其他c文件定义的函数,也可以使用extern关键字在当前文件中显示声明一下。
全局函数和静态函数
在C语言中函数默认都是全局的,在所有的C文件中都可以通过extern关键字访问,而静态函数是使用关键字static可定义的函数,和静态全局变量一样只能被它定义的文件访问,其他文件都无法访问。
二、内存区域划分
C语言在内存中一共分为如下几个区域,分别是:
- 代码区:代码区code,程序被操作系统加载到内存的时候,所有的可执行代码都加载到代码区,这块内存是不可以在运行期间修改的,它是只读的。
- 常量区(全局区):存放常量(程序在运行的期间不能够被改变的量,例如: 10,字符串常量”abcde”, 数组的名字等)。
- 静态区(全局区):所有的全局变量/常量、静态变量/常量都存储到这个静态区,程序运行期间一直有效。
- 栈区(stack):每个线程都有自己专属的栈(stack),栈是一种先进后出的内存结构,所有的自动变量、函数的形参、函数的返回值,都是由编译器自动放入栈中,当一个自动变量超出其作用域时,自动从栈中弹出。对于自动变量什么时候入栈是不需要程序控制的,由C语言编译器实现;栈不会很大,一般都是以K位单位,当栈空间满了但是还往栈内存中压变量,就会出现栈溢出错误。
C语言函数的参数入栈顺序是从由到左的, 而出栈就是从左到由的. - 堆区(heap):一个进程就一个堆,它是被所有线程共享的,堆(heap)和栈一样也是一种在程序运行过程中可以随时修改的内存区域,但是没有栈那样先进后出的顺序, 堆是一个大容器,它的容量要远远大于栈,在C语言中堆内存的申请和释放需要手动通过代码来完成。
三、堆内存的分配和释放
操作系统在管理内存时,最小单位是内存页,而不是字节,什么意思呢?
意思就是说假如你在程序中申请了1k(1024字节)的内存大小,操作系统可能会返回4k的大小,这种做的好处是效率提高了,避免频繁的分配内存,但是缺点就是浪费了一些内存。
3.1 malloc分配堆内存
void * malloc(size_t _Size);
这个函数在堆中分配参数_Size指定大小的内存,单位是字节,函数返回值void*指针,表示任意类型的指针。使用时需要导入stdlib.h头文件。
3.2 free释放堆内存
void free(void *p);
free负责释放malloc分配的堆内存,参数p为malloc返回的堆内存地址,通常和malloc配套使用。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>int main()
{//定义一个栈变量指向堆内存地址,堆内存大小10个字节char *s = malloc(10);//拷贝abcd字符串到s变量分配的内存中strcpy(s,"abcd");printf("%s\n",s);//释放堆内存中的内存,注意并不是把s变量释放了,而是释放了s指向的那块堆内存,//s变量是在栈内的,他是自动变量,不需要我们维护.free(s);//int a[1000000000000];//在栈中定义一个数组,由于栈内存空间有限,不适合定义大数据,会栈溢出//大数据适合在堆内存中创建int *p = malloc(10000000000000*sizeof(int));free(p);return 0;
}
3.3 思考:解决函数返回值是指针的问题
当函数的返回值是指针类型时, 如果函数内返回的地址是一个自变量的地址,那么编译是会报警告的,这个问题是因为函数内定义的自变量出了作用域就会消失,因为它存在栈内存中,由系统自动管理。
如下代码就是一个错误的示范
#include<stdio.h>int *test1()
{ int a = 10; //函数内定义的变量,出了作用域就会消失,因为它存在栈内存中,由系统自动管理return &a;
}int main()
{int *p = test1(); //编译时会警告,因为p指向的内存是在栈中分配给a变量的,test1函数执行完就释放了a,a不存在了.printf("%d\n",*p);return 0;
}
编译器会自动检测并报错提示
解决方案有2种:
方案一: 返回一个在堆内存分配的地址指针变量
在函数内使用malloc分配堆内存给栈的指针变量,这样当栈变量离开函数作用域被回收后,但是分配的堆内存空间还是有效的,里面存放的值也是可以访问的,在调用这个函数的时候拿到堆的内存地址就可以操作这块区域的数据,但是操作完后记得调用free来释放堆内存。
#include <stdio.h>
#include <stdlib.h>int *test2()
{// 任何变量类型包括数组如果要在函数外使用,都必须使用堆内存分配int *p = malloc(1 * sizeof(int));*p = 10;return p;
}int main()
{// 这样p变量指向的内存是在堆中分配的. 所以不会被自动回收.int *p = test2(); printf("%d\n", *p); // 10// 记得释放free(p);return 0;
}
方案二: 在函数调用处定义自变量
不要在函数内创建变量,而是在调用处创建变量,然后传递地址到目标函数处理,处理完成返回的地址其实和创建时指向的是一样的,都是在栈内存中。由于变量定义是在函数调用处定义的,只要调用处的作用域没有结束,就可以继续访问。
#include<stdio.h>int * test(int *a)
{*a = 10;return a;
}int main()
{int a; //在调用处定义变量int * p = test(&a); //调用上面的方法,返回指针变量p , 此时指针变量p所指向的地址是存在栈内存中的. 因此不需要手动释放内存printf("%d,%d\n",a,*p);return 0;
}
注意:free函数释放的字节数是根据malloc申请的大小来释放的, 也就是说从指针变量当前位置往后多少个字节就释放多少, 因此特别需要注意指针变量++操作后, 会影响free的结果, 程序运行会异常, 因此free前需要做相应的–操作。
3.4 思考:局部静态变量和常量所指向的地址的值出了作用域还能访问吗?
可以,因为静态变量和常量都是在程序运行期间有效的,且不需要手动释放内存。
#include <stdio.h>char *test()
{static char a[100] = "hello"; //静态变量的地址是运行期有效的char *p = a; //定义一个指针变量指向a的地址p++; // 指针++后指向的就是e的位置了return p;
}const char *test1()
{// 定义了一个字符串常量, 由于常量是只读的,所以返回值类型最好加上constconst char *s = "hello1";return s;
}const char *test2()
{return "hello2"; //直接返回字符串常量, 效果和test1函数一样.
}int main()
{char *str = test();printf("%s\n", str); //可以正确输出ello ,因为str指向的地址是静态变量的地址,不会受函数作用域影响const char *str1 = test1();const char *str2 = test2();printf("str1=%s,str2=%s\n", str1, str2); //可以正确输出hello1和hello2,因为常量的地址也是不会变的//printf("%s\n",s); 虽然地址不会变,但是s还是栈的变量,只是指向了常量的地址而已. 所以出了函数体后,s变量就访问不了了.return 0;
}
3.5 案例:使用堆内存解决strcat追加字符串无法提前预知内存大小的申请问题
#include <stdio.h>
#include <stdlib.h>
#include <string.h>int main()
{char a[] = "hello";char b[] = "hhhhhhhhhhhhhhhhhhhhhhhh";//动态分配内存, 根据a和b的字符串长度动态申请堆内存大小char *p = malloc(strlen(a) + strlen(b) + 1);//拷贝strcpy(p, a);//追加strcat(p, b);printf("p=%s\n", p); // p=hellohhhhhhhhhhhhhhhhhhhhhhhhreturn 0;
}
3.6 calloc分配指定大小的堆内存
void * calloc(size_t _Count, size_t _Size);
与malloc类似,负责在堆中分配内存,参数1是所需内存单元数量,参数2是每个内存单元的大小(单位:字节),calloc自动将分配的内存值0,因此不需要使用memset来清空。 而malloc分配的内存则需要使用memset来清空。
int *p = (int *)calloc(100, sizeof(int));//分配100个int
//等效于
int *p = (int*)malloc(100 * sizeof(int))
3.7 realloc重新分配新的堆内存
重新分配用malloc或者calloc函数在堆内存中分配的空间大小。
void * realloc(void *p, size_t _NewSize);
参数1:p为之前用malloc或者calloc分配的内存地址,等于NULL,那么realloc等效于malloc
参数2:_NewSize为重新分配后的最终内存的大小(单位:字节).
返回值:
成功返回新分配的内存首地址, 失败则返回NULL , realloc内部会重新分配一个连续的内存空间, 如果源地址后面不够分配, 他就会新申请一块空间, 而且这中间会自动的完成拷贝旧区域的数据到新区域, 完成后会自动的把旧区域内存释放, 这个过程是不用我们关心, 我们只需要关注的是它返回的新地址, 需要我们手动释放的也是这个返回的新地址对应的内存空间.
使用场景:如果一个变量初始分配了10个字节的堆大小, 后面发现不够用来了,需要20个字节, 那么就可以使用realloc来增加到20个字节大小,例如:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>int main()
{char *s1 = calloc(10, sizeof(char));char *s2 = calloc(6, sizeof(char));strcpy(s1, "123456789");strcpy(s2, "adcde");//此时s1的申请的空间已经用完了, 如果还想把s2也追加到s1中,则需要对s1进行扩容s1 = realloc(s1, strlen(s1) + strlen(s2) + 1);//追加s2strcat(s1, s2);printf("s1=%s\n", s1); // s1=123456789adcdefree(s1);free(s2);return 0;
}
3.8 正确处理函数内分配堆内存的问题
注意:如果想给一个指针通过函数调用来分配堆内存,那么必须要将该指针的地址作为形参传入, 该函数的形参类型一定是二级指针. 否则无法实现这种需求。
先来看一段代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>void test(char *s)
{strcpy(s, "hello");
}int main()
{char *p = calloc(10, 1); //在堆中分配10个字节的内存大小test(p); //给p变量赋值printf("%s\n", p); // hellofree(p); //释放内存return 0;
}
接着将上面的代码修改下为下面这种后,你会发现输出结果还是null。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>void test(char *s)
{s = calloc(10, 1); //在这里申请堆内存strcpy(s, "hello");
}int main()
{char *p = NULL;test(p); //调用test函数,把p实参传递给函数的形参sprintf("p=%s\n", p); //p还是NULL, 因为test函数执行完成后,s变量就消失了free(p); //释放内存,直接报错,因为p变量执行的内存是在栈中return 0;
}
前面代码之所以可以是因为,变量p是在调用处分配了内存,然后调用test函数给形参s赋值,此时s栈变量指向的堆地址还是在main函数申请的, 所以离开了test函数后, main操作的变量p并不影响,并且指向的堆内存地址对应的值也是可以正常查看修改后的值的。
那么如何解决在调用处没有申请堆内存却能正常使用的问题呢?
将p变量的地址传递给test函数, 函数参数改为二级指针, 然后函数体内操作一级指针的值即可。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>void test(char **s)
{//给1级指针分配堆内存地址*s = calloc(10, 1);//赋值strcpy(*s, "hello");
}int main()
{char *p = NULL;test(&p); //传入一级指针的地址printf("%s\n", p); // hello//释放free(p);return 0;
}
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- js实现点击<li>标签弹出其索引值
根据上面HTML,用JS实现点击 li 输入当前 li 节点在 ul 列表中的索引 <ul><li>11111</li><li>22222</li><li>33333</li><li>44444</li><li>55555</li> <ul>1.获取所有的li元素,…...
2024/4/18 13:45:23 - vivo y10参数配置
一、屏幕 vivo Y10采用的是一块6.43英寸的LCD材质水滴屏,屏幕分辨率为 1600*720(720P分辨率),刷新率为60Hz。 二、处理器 vivo Y10搭载的是联发科的P35处理器,这个处理器采用12nm工艺制程,拥有八颗A55核…...
2024/5/4 0:17:55 - Jmeter常用插件使用说明
插件使用步骤: 1、下载管理插件,plugins-manager.jar,将plugins-manager.jar拷贝到Jmeter的lib/ext目录下,重新打开Jmeter在options菜单可以看到如下界面 2、打开options->Plugins Manager,如下图展示,…...
2024/4/19 9:59:43 - 牛云使用流程之管钱
牛云微商城的管钱分了数据和资产两大块。 数据进入牛云微商城后台——数据 数据又分了经营数据和数据分析 1.经营数据 预计收入、营业额、订单数、访客人数、浏览量、下单转化率清晰明了,预计收入给出了曲线,通过访客人数、浏览量可以看到公司的流量&…...
2024/4/20 18:13:50 - 不用996,不用007,赚的还比我多?我直接好家伙
今天打开手机就看见信息99,哟吼,还挺热闹——感情都在上班摸鱼呢。 好奇心让我点了第一条未读信息,好家伙,直接让我手机闪退出APP了! 嗨,我这暴脾气,直接手动滑到了第一条!但是我没…...
2024/4/13 9:51:36 - MySQL 索引篇
1、什么是索引? 索引是一种能帮助 MySQL 提高查询效率的数据结构。 2、索引分别有哪些优点和缺点? 优点: (1)快速访问数据表中的特定信息,提高检索速度。 (2)创建唯一性索引&…...
2024/5/3 17:08:29 - usingcomponents 未找到
解决方法["usingComponents"]["u-button"] 未找到? | 微信开放社区...
2024/4/13 9:51:31 - list转成map map转成list 数据结构处理
//将modelPropertyList数据结构处理成shopListList<CollectionItemContentResp> child item.getChild();Map<String, String> childMap child.stream().collect(Collectors.toMap(CollectionItemContentResp::getDataKey,CollectionItemContentResp::getValue));…...
2024/4/27 3:51:29 - 03-Docker基本操作
Docker的基本操作 镜像操作 镜像名称 镜像的名称组成: 镜名称一般分两部分组成:[repository]:[tag]。在没有指定tag时,默认是latest,代表最新版本的镜像 例如: mysql:5.7,这里mysql是repository,5.7是…...
2024/4/14 4:30:55 - IDEA主题设置
目录: ☍ 系统主题设置 ☍ 导入其他IDEA主题 ☍ 主题优化及字体设置 ☍ 自定义IDEA主题 1|0▾ 系统主题设置 首先进到设置里:File➞Settings➞Appearance&Behavior➞Appearance。 这里默认提供了三套主题:IntelliJ,Darculaÿ…...
2024/4/25 11:36:16 - 非对称加密的应用
第一步获取非对称秘钥: 可以通过网站获取:在线RSA加密解密,RSA公钥私钥加密解密-ME2在线工具 第二种,代码生成:利用Python Crypto生成RSA公钥私钥 - it610.com 第二步:对应的加解密: from C…...
2024/5/3 12:50:49 - vue中的computed、watch和methods
在vue中我们一拿到需求的时候都会想到在methods写方法来实现想要的效果,但是有些属性是需要重复赋值的并计算,这个时候我们就用computed这个计算属性,还有一个是侦听器watch,总结: methods(方法࿰…...
2024/4/15 2:36:09 - 创建servlet项目
...
2024/4/18 23:11:20 - enum+switch处理好BunkSaveListReq一级对应值
//enumswitch处理好BunkSaveListReq一级对应值String dataKey item.getDataKey();switch (CollectShopPrimaryGroupEnum.getEnumByKey(dataKey)) {case SHOP_BASIC:bunkSaveListReq.setShopBasicList(shopList);break;case SHOP_IMAGE:bunkSaveListReq.setShopImageList(shopL…...
2024/5/3 11:52:53 - 编译问题追踪:versions of Android Studio and the command-line tools that were released at different times
编译问题追踪 编译问题追踪分析解决总结编译问题追踪 升级到新版本 Android Studio Bumblebee | 2021.1.1 Patch 1 出行了如下提示: Warning: This version only understands SDK XML versions up to 2 but an SDK XML file of version 3 was encountered. This ca…...
2024/5/6 5:39:33 - vue ui 创建项目 ,添加样式时报错,通过vue ui安装less-loader 和less 依赖后报错,百度告诉说版本太高导致
vue ui 安装依赖时,无法选择指定版本,所以,解决办法有两个,第一个用vue ui卸载安装的less-loader 和 less依赖, 第二个使用命令行卸载安装的less-loader 和 less 依赖。 两种方法均需要用命令行进行指定版本的安装。方…...
2024/5/6 16:40:38 - 2022年北京市博士后工作经费资助申报条件及时间介绍
2022年北京市博士后工作经费资助申报条件,博士后日常经费资助,各项管理制度及组织机构健全,博士后研究人员科研经费和生活保障措施到位;博士后科研活动资助,2020年10月1日后进站的博士后研究人员;博士后国际…...
2024/5/3 22:44:06 - [单片机框架] [drivers] [hc4051] 8路模拟分流器
1、概述 74HC4051是- -款八选一模拟开关电路,内置3个地址选择端(A0~ A2), 低有效的使能输入端(E),8路独立的输入/输出端(Y0~Y7) 及公共输入/输出端(Z)。 电路内部有8个双向模拟开关,每个开关的一-端连接到独立的输入输出(Y0~Y7)端ÿ…...
2024/5/3 13:23:09 - 网页前端第六次培训
本文章为寒假记录通过b站学习HTML所得收获 一、学习网址:【优极限】 HTMLCSSJavaScriptjQuery前端必学教程,小白教学,前端基础全套完成版_哔哩哔哩_bilibili p20~p23 二、js基础语法 1.运算符 比较运算符比较值1"1" true比较值…...
2024/4/13 9:51:56 - assets和static的相同点及不同点
相同点:两个都是存放静态资源文件。项目中所需要的图片、字体图标、样式文件都可以放在这两个文件夹下 不同点: 1.assets在项目打包时,即是npm run build的时候,会进行打包上传(压缩体积,代码格式化&#…...
2024/4/17 22:49:45
最新文章
- Linux操作系统中管理磁盘的另外一种操作方式。即LVM——逻辑卷管理操作
在Linux操作系统中管理磁盘的一种方法名称——LVM,这种管理磁盘的优势。 1.使用LVM去管理磁盘可以在不影响原来数据的前提下去扩容磁盘空间或者是缩减磁盘空间。 在LVM中除了上层逻辑券可以扩容,下层的券组也可以扩容。 2.使用LVM管理的磁盘支持快照功…...
2024/5/10 7:50:26 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/5/9 21:23:04 - Redis分区
Redis分区是一种数据分片技术,用于将数据分布到多个Redis实例(节点)上以提高性能和扩展性。分区使得Redis能够处理比单个实例更大的数据集,并允许并行处理客户端请求。 原理: Redis分区通过一致性哈希算法(…...
2024/5/9 10:17:13 - 大型矿业集团安全知识竞赛主持词
男:尊敬的各位领导,员工同志们: 合:大家好! 男;首先让我们以热烈的掌声对公司领导亲临比赛现场指导观看表示欢迎! 男;继成功开展了荣辱观专题讲座、好矿嫂女红艺术展、安全谜语竞猜…...
2024/5/9 20:49:32 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/8 6:01:22 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/5/9 15:10:32 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/5/4 23:54:56 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/5/9 4:20:59 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/5/4 23:54:56 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/5/4 23:55:05 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/5/4 23:54:56 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/5/7 11:36:39 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/5/4 23:54:56 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/5/6 1:40:42 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/5/4 23:54:56 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/5/8 20:48:49 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/5/7 9:26:26 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/5/4 23:54:56 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/8 19:33:07 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/5/5 8:13:33 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/5/8 20:38:49 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/5/4 23:54:58 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/5/9 7:32:17 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/5/9 17:11:10 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57