代码疑云(1)-掌握初始化列表


代码

[cpp] view plaincopy
  1. #include<iostream>  
  2. using namespace std;  
  3. class A  
  4. {  
  5. private:  
  6.   int x1;  
  7.   int x2;  
  8. public:  
  9.   A():x2(1),x1(x2++){} //初始化列表  
  10.   void print()  
  11.   {  
  12.     cout<<"x1="<<x1<<endl  
  13.         <<"x2="<<x2<<endl;  
  14.   }  
  15. };  
  16. int main()  
  17. {  
  18.   A a;  
  19.   a.print();  
  20.   
  21.   return 0;  
  22. }  

:x1,x2最终被输出什么值呢?为什么?

解答:上机调试下会发现输出的结果是:x1是一个随机数,x2是1。为什么?因为在初始化列表中在给x1赋值为x2++时,这个x2并未初始化,也就是说x2里面什么东西也没装。也许你会问我不是在前面已经给x2赋值了吗,没错,但是有一个问题你忽略了,那就是初始化列表的赋值顺序是依照x1和x2的声明顺序的顺序来初始化的,也就是说在代码中,程序是先给x1赋值为x2++(此时x2并未初始化),再给x2赋值为1。还有初始化列表里的赋值,是在变量被声明时进行的,所以多使用初始化列表是可以提升程序效率的。

!!代码疑云系列由本人在天天唯C论坛下首发


代码疑云(2)-c函数调用约定

代码:

[cpp] view plaincopy
  1. #include<iostream>  
  2. using namespace std;  
  3. void foo(int p1,int p2,int p3)  
  4. {  
  5.   cout<<"p1="<<p1<<endl  
  6.       <<"p2="<<p2<<endl  
  7.       <<"p3="<<p3<<endl;  
  8. }  
  9. int main()  
  10. {  
  11.   int i;  
  12.   cout<<"first call:"<<endl;  
  13.   i=0;  
  14.   foo(++i,++i,++i);  
  15.   cout<<"second call:"<<endl;  
  16.   i=0;  
  17.   foo(++i,i++,i++);  
  18.   return 0;  
  19. }  

:两次调用foo函数分别输出了什么,为什么?

解答:按照cedel函数调用的约定,编译器使参数从左到右的入栈。第一次调用为什么p1,p2,p3的值全是3呢,原因在此,在foo被call之前三++i 操作将先被操作也就是连续自增了3次,最终结果i 的值是3,然后是编译器push(i),push(i),push(i)三次入栈,然后call到foo定义处依次出栈并相应地复制给了形参。第二次调用foo时,一开始与第一次一样先是计算三次++操作,但是所不同的是最后两个是i++,i++刚没说到它们的计算顺序,编译器计算这些的顺序是由右到左的,也就是先i++,再i++,最后是++i,而运算i++是先取值再自增的,编译器会先把i (这时为0)存入寄存器(cpu中的存储器),再加1,然后计算下一个i++ 与前一次一样,所不同的是这次 i 的值是1,因为前面已加1 ,最后++i 。

!!代码疑云系列由本人在天天唯C论坛下首发



代码疑云(3)-静态字符串

代码:

[cpp] view plaincopy
  1. #include<iostream>  
  2. using namespace std;  
  3. int main()  
  4. {  
  5.   char *str1 = "string";  
  6.   char *str2 = "string";  
  7.   if(str1 == str2)  
  8.     cout<<"str1 is same as str2";  
  9. }  

:str1 的值是否等于 str2 而输出字符串“str1 is same as str2”呢,为什么?解答:是的 “str1 is same as srr2”,也就是说str1与str2指向了相同的内存地址,因为"string"是静态对象,是由编译器分配给他的内存空间,在代码中出现了两次,编译器并不会给他们分别分配空间,因为如果这样将会造成不必要的浪费。


代码疑云(4)-类的sizeof值

代码:

[cpp] view plaincopy
  1. #include<iostream>  
  2. using namespace std;  
  3. class A  
  4. {  
  5.   
  6. };  
  7. class B  
  8. {  
  9.   char a;  
  10.   int b;  
  11. };  
  12. class C  
  13. {  
  14.   void foo(){};  
  15. };  
  16. class D  
  17. {  
  18.   virtual void foo(){};  
  19. };  
  20. int main()  
  21. {  
  22.   cout<<sizeof(A)<<sizeof(B)<<sizeof(C)<<sizeof(D);  
  23.   return 0;  
  24. }  

:结果是什么,为什么呢?

解答:sizeof(A)为1,而不是0,虽然空类没有任何成员变量,但其实体提供取地址操作,所以其内存空间不能为0。sizeof(B)为8,编译器在计算类体或结构体变量的地址时是通过字节对齐的方式进行的,也就是通过加多少偏移量来确认是那个变量。类的偏移量为其最大内存空间的类型的成员变量的长度,其最大内存空间类型成员是int,所以偏移量为4字节,即char a成员需要补上3个字节,才能让编译器准确高效地寻址,再加上int的4字节,sizeof(B)就是8了。sizeof(C)为1,类的成员函数在编译器编译时,其函数地址就已自动存放,所以不必为其分配额外的空间来存放他,所以它的长度跟空类一样为1。sizeof(D)为4,因为类D需要构造一虚函数列表来存放函数指针以实现动态调用,一个指针的长度占用4个字节,所以为4.


代码疑云(5)-类成员函数的thiscall约定

代码:

[cpp] view plaincopy
  1. #include<iostream>  
  2. using namespace std;  
  3.   
  4. class A  
  5. {  
  6. private:  
  7.   int value;  
  8. public:  
  9.   A()  
  10.   {  
  11.     value=0;  
  12.   }  
  13.   void coutHello()  
  14.   {  
  15.     cout<<"hello"<<endl;  
  16.   }  
  17.   void coutValue()  
  18.   {  
  19.     cout<<value<<endl;  
  20.   }  
  21. };  
  22. int main()  
  23. {  
  24.   A *pA=NULL; //空指针,所指向的内容不可访问存取  
  25.   
  26.   pA->coutHello();  
  27.   pA->coutValue();  
  28.   
  29.   return 0;  
  30. }  

(感谢网友提供的题目)

疑:调用coutHello和coutValue方法有什么问题?
解答:成员函数的地址在编译器编译时给出的,所以是已知的,根据thiscall约定,类的成员函数在编译时编译器会传入一个this指针,通过this指针指向成员变量,在调用couthello时并未用到this指针所以调用正常,而调用coutvalue时,value需要用到this指针,因为此时this是NULL指针,所以会发生内存报错。



代码疑云(6)-头文件的正确定义

代码:

头文件print_tools.h

[cpp] view plaincopy
  1. #include<stdio.h>  
  2. void printStr(const char *pStr)  
  3. {  
  4.   printf("%s\n",pStr);  
  5. }  
  6. void printtInt(const int i)  
  7. {  
  8.   printf("%d\n",i);  
  9. }  

头文件counter.h
[cpp] view plaincopy
  1. #include"print_tools.h"  
  2. static int sg_value;  
  3. void counter_init()  
  4. {  
  5.   sg_value=0;  
  6. }  
  7. void counter_count()  
  8. {  
  9.   sg_value++;  
  10. }  
  11. void counter_out_result()  
  12. {  
  13.   printStr("the result is:");  
  14.   printtInt(sg_value);  
  15. }  

main.cpp
[cpp] view plaincopy
  1. #include "print_tools.h"  
  2. #include "counter.h"  
  3. int main()  
  4. {  
  5.   char ch;  
  6.   counter_init();  
  7.   printStr("please input some charactors:");  
  8.   while((ch=getchar())!='$')  
  9.     {  
  10.       if(ch=='A')  
  11. <span style="white-space:pre">    </span>counter_count();  
  12.     }  
  13.   counter_out_result();  
  14. }  

疑:以上代码编译时有何问题吗,是什么导致的呢?

解答:void printStr(const char*)和'void printtInt(int) 函数redefine了,道理很简单,因为在counter.h中已包含了print_tools.h,在main.cpp中又包含了print_tools.h头文件,也就是两次包含了print_toosl.h,所以也就发生了重定义错误,这是初学者常见问题,要避免这个问题,我们必须采取防范措施,就是使用预编译命令,如下作修改:

头文件print_tools.h

[cpp] view plaincopy
  1. #ifndef PRINT_TOOLS_H //如果未定义 PRINT_TOOLS_H  
  2. #define PRINT_TOOLS_H //则定义 然后编译以下源代码  
  3. #include<stdio.h>  
  4. void printStr(const char *pStr)  
  5. {  
  6.   printf("%s\n",pStr);  
  7. }  
  8. void printtInt(const int i)  
  9. {  
  10.   printf("%d\n",i);  
  11. }  
  12. #endif //结束 //如此改头文件就只被编译器编译一次了,起到了防范重定义错误的作用  

头文件counter.h
[cpp] view plaincopy
  1. #ifndef COUNTER_H  //  
  2. #define COUNTER_H  //  
  3. #include"print_tools.h"  
  4. static int sg_value;  
  5. void counter_init()  
  6. {  
  7.   sg_value=0;  
  8. }  
  9. void counter_count()  
  10. {  
  11.   sg_value++;  
  12. }  
  13. void counter_out_result()  
  14. {  
  15.   printStr("the result is:");  
  16.   printtInt(sg_value);  
  17. }  
  18. #endif //  

在一个工程项目中头文件众多繁杂,采用这个方法可以很好的避免,所以每当我们定义一个头文件时要养成如此的良好习惯。


代码疑云(7)-构造函数在类继承时

代码

[cpp] view plaincopy
  1. #include <iostream>  
  2. using namespace std;  
  3. class A  
  4. {  
  5. public:  
  6.   A()  
  7.   {  
  8.     Print();  
  9.   }  
  10.   virtual void Print()  
  11.   {  
  12.     cout<<"A is constructed.\n";  
  13.   }  
  14. };  
  15.   
  16. class B: public A  
  17. {  
  18. public:  
  19.   B()  
  20.   {  
  21.     Print();  
  22.   }  
  23.   
  24.   virtual void Print()  
  25.   {  
  26.     cout<<"B is constructed.\n";  
  27.   }  
  28. };  
  29.   
  30. int main()  
  31. {  
  32.   A* pA = new B();  
  33.   delete pA;  
  34.   
  35.   return 0;  
  36. }  
(感谢网友提供的题目)

以上代码输出结果是?

输出结果如下:
A is constructed.
B is constructed.
解释:当new B()时,因为B继承了A,所以编译器首先调用A的构造函数,A的构造函数里是调用A类里的Print(),所以首先输出A is constructed ,然后调用的是B的构造函数,此时Print虚函数指针已指向B的void print(),所以输出B is constructed。



代码疑云(8)-逻辑符号间的逻辑

代码

[cpp] view plaincopy
  1. #include <stdio.h>  
  2. int main()  
  3. {  
  4.   int a=0,b=0;  
  5.   
  6.   printf("%d\n",!a||++b||b++);  
  7.   printf("b=%d\n",b);  
  8.   printf("%d\n",!a&&++b&&b++);  
  9.   printf("b=%d\n",b);  
  10.   
  11.   return 0;  
  12. }  

:以上输出什么,为什么?

解答:int a=0,b=0;在在第一次printf语句中,!a为1,后面的++b和b++就不做了,所以第二次输出是0,第三次printf中是与运算,后面的++b和b++还要做的,所以第二次会输出b=2。

代码疑云(9)-属于函数作用域里的字串

代码

[cpp] view plaincopy
  1. #include <stdio.h>  
  2. char* GetString1()  
  3. {  
  4.     char p[] = "Hello World";  
  5.     return p;  
  6. }  
  7. char* GetString2()  
  8. {  
  9.     char *p = "Hello World";  
  10.     return p;  
  11. }  
  12. int main()  
  13. {  
  14.     printf("GetString1 returns: %s. \n", GetString1());  
  15.     printf("GetString2 returns: %s. \n", GetString2());  
  16.    
  17.     return 0;  
  18. }  
(感谢网友提供的题目)

:以上输出结果是什么情况?




………………………………………………………………………………………………………………………………………………………



解答:结果是GetString1()是乱码,GetString2()是 “Hello World”。因为GetString1()返回的是是指向该函数作用域里的局部变量char p[]的首内存空间,而当函数返回到主函数时,该内存空间将会被释放,所以P指向了一个无效的内存空间。而GetString2()中的p是指向全局对象(字符串“HelloWorld”)的,所以是“HelloWorld”.


代码疑云(10)-浅谈联合体

[cpp] view plaincopy
  1. #include <stdio.h>  
  2. #include <string.h>  
  3. struct TStudent  
  4. {  
  5.   long int ID;  
  6.   union{  
  7.     char name[10];  
  8.     char mingzi[11];  
  9.   };  
  10.   char dept[17];  
  11. };  
  12. int main()  
  13. {  
  14.   TStudent stu;  
  15.   strcpy(stu.name,"zh");  
  16.   strcpy(stu.dept,"computer science");  
  17.   printf("student`s mingzi is:%s\n",stu.mingzi);  
  18.   printf("student`s name is:%s\n",stu.name);  
  19.   printf("student`s department is:%s\n",stu.dept);  
  20. }  

:以上代码输出结果是什么,为什么?




……………………………………………………………………………………………………………………………………




参考解答:

union{
char name[10];
char mingzi[11];
};
定义这个就代表name[10]和mingzi[11]共享同一块内存。这里顺便提一下,mingzi[11]的空间大于name[10],所以申请空间的时候以union里面最大的字段为准。假如
union 
{
char name[10];
char mingzi[11];
}  UN_NAME;
那么sizeof(UN_NAME) 应该等于11。即取最大的字段的空间。当然这里不涉及字节对齐问题。
所以当strcpy(stu.name,"zh");执行这句的时候,mingzi[11]的内存空间也被赋值了"zh",所以最后打印两者的结果是一样的。


代码疑云(11)——指针与类型转换


代码

[cpp] view plaincopy
  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3. void swap(int  *pa, int *pb)  
  4. {  
  5.     int temp;  
  6.     temp = *pa;  
  7.     *pa = *pb;  
  8.     *pb = temp;  
  9. }  
  10.   
  11. int main()  
  12. {  
  13.   char a[]="BACD";  //a字符串数组  
  14.    
  15.   
  16.   swap((int*)&a[0],(int*)&a[1]);//经过强制转换后交换a和b的值,使原序列变为“ABCD”  
  17.   
  18.   
  19.   printf("after swap:\n");  
  20.   printf("%s",a);  //打印a字符串数组  
  21.     
  22.   system("pause");  
  23.   return 0;  
  24. }  


以上c程序调用swap函数后能否得到预期的结果?结果是?




……………………………………………………………………………………………………………………………………………………………………………………




解释:不能,在32位机中,a为char型数组,各元素占用1字节内存空间,而在swap函数声明里的pa和pb为int 型指针,也就是说编译器会把pa,pb解析为指向连续四字节空间的指针,在进行各种运算时就是对pa、pb所指向的四字节进行运算,那么以上程序的pa、pb指向哪里呢?通过打印它们发现pa和pb的地址相差为1,pa小于pb,因为pa,pb对应a数组的地址所以实际上pa所指的四个字节是a数组下标第0,1,2,3的四个元素,而pb指向a数组下标为1,2,3,4的四个元素。图示:


pa对应a数组编号:       0        1        2      3

pa所指内存空间: | ‘B’ | ‘A’ | 'C' | 'D' |


pb对应a数组编号:      1        2        3      4

pb所指内存空间: | ’A‘ | 'C' | 'D' |'\0' |

所以在swap里,首先temp存储了*pa为[B,A,C,D],执行*pa=*pb后pa就变为[A,C,D,\0],此时a数组就变为[A,C,D,\0,\0], 然后执行*pb=temp,结果pb=[B,A,C,D],a数组又变为[A,B,A,C,D]。所以打印a字符串数组的最终结果是:ABACD然后后面跟着一堆乱码。

总结:强制转换指针变量类型是不明智的选择,除非你能确保转换后所指向的内存空间大小与没转换后是一样的,如果不是将会带来灾难性的后果,导致程序中其它变量被串改或由于指向了某段未经声明的内存空间而变为野指针。



查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. C语言贪吃蛇实现 链表学习

    以下代码片段就是整个源代码代码主要是github上大佬写的,附上地址(https://github.com/mnisjk/snake.git)我又在这基础上优化了点,释放漏释放的内存,禁止蛇反向运动#include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <curses.h> …...

    2024/4/15 18:18:57
  2. 如何配置数据库ODBC数据源

    在<调整计算机的设置>中,点击<系统和安全>.点击<管理工具>.点击<数据源(ODBC)>.点击<系统用户>,然后,点击按钮<添加>.在<创建数据源>里,找到Microsoft Access Driver(*.mdb),选中.然后点击完成.在<ODBC Microsoft Access 安装>…...

    2024/4/19 9:03:53
  3. 教你如何爬取某8APP的租房信息

    爬虫爬取某数字app的房屋信息 声明:本文只是用来学习交流,并不是用来使用爬虫恶意爬去别人劳动成果,本文只是用来作为研究分享爬虫的思路,加强开发人员在日常开发工作中的安全意识。 缘起 从广州回来的时候,第一件要解决的事情就是租房。由于房屋信息比较分散,并且租房的…...

    2024/4/18 4:27:15
  4. 蒙特卡洛(Monte Carlo)方法

    采用知乎上的说法,其实它本身不算是一种算法,更像是对一类随即算法特性的概括。通常会将随即算法分为两类:蒙特卡洛算法:采样越多,越近似最优解; 拉斯维加斯算法:采样越多,越有机会找到最优解;两者差别就有了,一个就尽量找更好的,只要比上一次好就行;而另一个是总是…...

    2024/4/26 14:24:42
  5. list集合转某个字段分类的map

    attendantRecordDOS按订单号分类://key为订单号Map<String, List<AttendantServiceRecordDO>> collect = attendantRecordDOS.stream().collect(Collectors.groupingBy(AttendantServiceRecordDO::getOrderSn));...

    2024/5/4 20:17:41
  6. 数组,一维,二维,多维

    数组一维数组数组初始化,创建数组,数组长度为5int [] array=new int[5];array[0] = 1;array[1] = 2;array[2] = 3;array[3] = 4;array[4] = 5;直接赋值的数组int[] array1 = new int[] {1,2,3,4,5 }; 数组,在创建的时候,需要规定数据类型,初始长度二维数组int [,] shuzu =…...

    2024/5/7 6:06:38
  7. 使用SqlConfigDataSource实现ODBC数据源配置

    使用SqlConfigDataSource实现ODBC数据源配置ODBC(Open Database Conectivity)即开放式数据库互联,作为Windows开放性结构的一个重要部分已经为很多的Windows程序员所熟悉,ODBC的工作依赖于数据库制造商提供的驱动程序,使用ODBC API的时候,Windows的ODBC管理程序,把数据库…...

    2024/4/18 21:39:28
  8. Velocity页面中输出时间年月

    问题:注册页面要求有创建时间的选项添加,年为至今为止实现:在java中处理,传值到VM中,利用#foreach遍历list 开始时觉得这样实现很好,但偶然间发现,太笨了,直接用Velocity就可以实现代码: ##获取当前年份#set($year=$!date.format(yyyy,$date))#set($Integ…...

    2024/4/18 22:13:37
  9. 深度学习之目标检测(五)—— DSSD & DSOD

    DSSD算法2017年CVPR,WeiLiu提出的SSD算法对小目标不够鲁棒的最主要原因是浅层feature map的表征能力不够强网络结构DSSD vs SSDDSOD算法2017年ICCV提出的,SSD+DenseNet = DSODDSOD可以从0开始训练数据,不需要预训练模型,而且效果可以和fine-tune的模型媲美DSOD设计原则DSOD…...

    2024/5/6 19:13:38
  10. 网站/h5封装App如何选择在线封装平台?

    App永远都是一个企业最终提高效率及转化的手段,可能大家都知道源码搭建App,却忽略了其实咱们的网址就可以封装成App。但是有些企业不知道APP制作平台是不是靠谱,该如何选择?所以接下来亥著就来介绍一下在线App制作:App制作平台可靠吗?现在与App开发相关的技术比较专业,软…...

    2024/5/6 20:44:06
  11. SQL Sever 2014配置ODBC数据源

    前言 时间不留情,作为一个年轻人这么能遇到困难轻言放弃呢,所以遇到问题,解决问题,问题就不是问题了。今天我的问题终于解决了,特来总结一下。 背景 在进行学生信息管理系统调试的时候出现了问题。后来经上网查询才知道,在敲或者在调试之前要先安装SQL,本人安装的是SQL …...

    2024/5/6 18:26:29
  12. 如何在shell内部定义一个函数

    函数基础知识函数就是将某些命令组合起来实现某一特殊功能的方式,是脚本编写中非常重要的一部分。定义函数:函数名(){函数体}调用函数:函数名传参函数格式:传参数函数名 参数函数体调用参数:函数名(){函数体 $n}注意:类似于shell内置变量中的位置参数简单函数定义和调用示…...

    2024/4/12 8:40:16
  13. 薅羊毛的最高境界,解放你的双手

    目录提示引子AutoJs安装开发环境连接手机编写刷视频的脚本总结 引子 各短视屏平台为了抢占市场,抢占流量大都推出了刷视频红包的功能,作为一个羊毛党来说,哪有那么多时间刷这玩意,工作还干不干了,钱还挣不挣了,真要是天天刷着玩意,正事不干,那可真就是剪了芝麻丢了西瓜…...

    2024/5/7 8:17:16
  14. 【Monte Carlo Tree Search Methods】MCTS 蒙特卡洛搜索树 学习笔记

    之前本科的时候有学过这个算法,写了一个五子棋的小demo,不过现在忘记了很多。所以在捡起来看一看。记录一下我的学习。简介蒙特卡洛搜索树和蒙特卡洛算法还是有区别的,mcts是一类数搜索算法,可以解决探索空间巨大的问题,比如围棋算法,AlphaGo就是用的mcts。如果对于空间小…...

    2024/4/13 8:40:10
  15. Velocity语法强化7之字符串

    连结字符串很简单,看例子就是 : #set( $size = "Big" )#set( $name = "Ben" )The clock is $size$name.上面的输出将是The clock is BigBen.或者: #set( $size = "Big" )#set( $name = "Ben" )#set($clock = "$size$name"…...

    2024/4/9 18:29:25
  16. C/C++编程笔记:C语言贪吃蛇源代码控制台(一),会动的那种哦!

    前几天有个同学加我QQ私聊我说他们老师布置了一个贪吃蛇,他不知道怎么写所以来找我求解,我给他简单讲解了思路和一些难点之后他也能够自己独立将项目完成了!考虑到更多同学可能有贪吃蛇上的问题,今天有时间就来写一下题解。我将分几步来教大家写一个贪吃蛇小游戏。由于大家…...

    2024/4/26 15:37:50
  17. linux操作系统配置ODBC数据源

    1.安装ODBC数据包,可以通过手工编译的方式也可以通过rpm包的方式进行安装,本文选择rpm包的安装方式: [root@boserver odbc]# ls -l 总计 1656 -rw-r--r-- 1 root root 298139 2014-08-27 unixODBC-2.2.11-10.el5.x86_64.rpm -rw-r--r-- 1 root root 811785 2014-08-27 unixODB…...

    2024/4/20 14:28:39
  18. 蒙特卡罗方法 Monte Carlo method

    通常蒙特卡罗方法通过构造符合一定规则的随机数来解决数学上的各种问题。对于那些由于计算过于复杂而难以得到解析解或者根本没有解析解的问题,蒙特卡罗方法是一种有效的求出数值解的方法。一般蒙特卡罗方法在数学中最常见的应用就是蒙特卡罗积分。蒙特卡罗算法表示采样越多,…...

    2024/4/24 2:15:36
  19. C语言 贪吃蛇游戏

    实现了贪吃蛇游戏的基本功能,并实现每次得分的记录及排行。 效果如下图 主页 游戏页面失败页面排行榜直接上代码 代码中有基本的注释 注:如果用.c文件运行测试,会出现大量错误。应该用.cpp文件运行。 #include<windows.h> #include<stdio.h> #include&l…...

    2024/5/3 14:49:54
  20. 编程语言

    计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。 如果按语种分,可以分为英文符号语言和汉语符号语言两类。(典型的如:易语言、易语言.飞扬)电脑每做的一次动作,一个步骤,都是按照以经用计算机语言编好的程序来执行的,程序是计算机要执…...

    2024/5/3 18:31:39

最新文章

  1. JavaScript数字分隔符

    ● 如果现在我们用一个很大的数字&#xff0c;例如2300000000&#xff0c;这样真的不便于我们进行阅读&#xff0c;我们希望用千位分隔符来隔开它&#xff0c;例如230,000,000; ● 下面我们使用_当作分隔符来尝试一下 const diameter 287_266_000_000; console.log(diameter)…...

    2024/5/9 2:03:13
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/7 10:36:02
  3. 免费的GPT-3.5 API服务aurora

    什么是 aurora &#xff1f; aurora 是利用免登录 ChatGPT Web 提供的无限制免费 GPT-3.5-Turbo API 的服务&#xff0c;支持使用 3.5 的 access 调用。 【注意】&#xff1a;仅 IP 属地支持免登录使用 ChatGPT的才可以使用&#xff08;也可以自定义 Baseurl 来绕过限制&#x…...

    2024/4/30 7:06:06
  4. 同一个pdf在windows和linux中的页数不一样

    之前认为PDF的格式&#xff0c;至少页数是不会变化的&#xff0c;结果最近发现一个文档在windows和linux中的页数不一样&#xff0c;linux中的pdf进入像word一样排版变得紧凑了&#xff0c;原本在下一页的几行进入了上一页的末尾。问了gpt后得到这样的回答&#xff1a; PDF文档…...

    2024/5/5 6:48:14
  5. docker进行jenkins接口自动化测试持续集成实战

    文章目录 一、接口功能自动化测试项目源码讲解二、接口功能自动化测试运行环境配置1、下载jdk&#xff0c;maven&#xff0c;git&#xff0c;allure并配置对应的环境变量2、使用docker安装jenkins3、配置接口测试的运行时环境选择对应节点4、jenkins下载插件5、jenkins配置环境…...

    2024/5/8 14:09:08
  6. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/8 6:01:22
  7. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/7 9:45:25
  8. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  9. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/7 14:25:14
  10. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  11. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  12. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/7 11:36:39
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  16. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/8 20:48:49
  18. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/7 9:26:26
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/8 19:33:07
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/8 20:38:49
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/6 21:42:42
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; 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
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在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