第二节、指针的进阶

1.字符指针

在指针的类型中我们知道有一种指针类型为字符指针 char* ;

注意:

 const char* pstr = "hello";

这里并不是把字符串 hello 放到字符指针 pstr 里了,本质是把字符串 hello 首字符的地址放到了 pstr 中。

#include <stdio.h>
int main() {char str1[] = "hello";char str2[] = "hello";const char *str3 = "hello";const char *str4 = "hello";if(str1 ==str2)printf("str1 and str2 are same\n");elseprintf("str1 and str2 are not same\n");if(str3 ==str4)printf("str3 and str4 are same\n");elseprintf("str3 and str4 are not same\n");return 0;
} //str1 and str2 are not same
//str3 and str4 are same

这里str3和str4指向的是一个同一个常量字符串。

C/C++会把常量字符串存储到单独的一个内存区域,当几个指针。指向同一个字符串的时候,他们实际会指向同一块内存。但是用相同的常量字符串去初始化不同的数组的时候就会开辟出不同的内存块。

所以str1和str2不同,str3和str4相同。

2.指针数组

指针数组是一个存放指针的数组。

int* arr1[10]; //整形指针的数组
char* arr2[10]; //一级字符指针的数组
char** arr3[10];//二级字符指针的数组

3.数组指针

3.1 定义

数组指针是指针,是能够指向数组的指针。

int (*p)[10];
//解释:p先和*结合,说明p是一个指针变量,然后指着指向的是一个大小为10个整型的数组。所以p是一个指针,指向一个数组,叫数组指针。//这里要注意:[]的优先级要高于*号的,所以必须加上()来保证p先和*结合。

3.2 “数组名” vs “&数组名”

int arr[10];

arr 和 &arr 是一样的东西吗?

举个例子:

#include <stdio.h>
int main() {int arr[10] = { 0 };printf("arr = %p\n", arr);printf("arr+1 = %p\n", arr+1);printf("&arr= %p\n", &arr); printf("&arr+1= %p\n", &arr+1);return 0;
} 

结果:

arr = 012FF6EC

arr+1 = 012FF6F0

&arr= 012FF6EC

&arr+1= 012FF714

从上面代码的结果可知:&arr和arr,有同样的数值,但本质上是不同的。

实际上:

arr是数组名,数组名表示数组首元素的地址。

&arr 表示的是数组的地址,而不是数组首元素的地址。

本例中 &arr 的类型是: int(*)[10] ,是一种数组指针类型

数组的地址+1,跳过整个数组的大小,所以 &arr+1 相对于 &arr 的差值是40.

4.函数指针

#include <stdio.h>
void test() {printf("hello\n");
}
int main() {printf("%p\n", test);printf("%p\n", &test);return 0;
}

结果:

003A1474

003A1474

输出了两个地址,这两个地址是 test 函数的地址。那么,如何保存函数的地址呢?

void test() {printf("hehe\n");
} 
void (*pfun)(); //pfun是指针,指向一个函数

补充两段有趣的代码:

//代码1
( *( void (*)() )0 )();
//把0强制转换成无参无返回值的函数指针类型,然后将0解引用后调用
//就是调用0地址处的函数//代码2
void ( *signal( int , void(*)(int) ) )(int);
//signal是一个函数声明
//这个函数参数有2个,一个是int,另一个是函数指针,该指针指向的函数参数为int,返回类型是void
//signal函数的返回类型也是函数指针,该指针指向的函数参数int,返回类型是void
//简化版本
typedef void(* pfun_t)(int);
pfun_t signal(int,pfun_t);

5.函数指针数组

数组是一个存放相同类型数据的存储空间,指针数组是一个存放指针的数组。

那如果把函数的地址存到一个数组中,这个数组就叫函数指针数组。

int (*parr[10])();

函数指针数组的用途:转移表

实例:

使用函数指针数组实现计算器。

#include <stdio.h>
int add(int a,int b){return a+b;
}
int sub(int a,int b){return a-b;
}
int mul(int a,int b){return a*b;
}
int div(int a,int b){return a/b;
}int main(){int x, y;int input = 1;int ret = 0;int(*p[5])(int x, int y) = { 0, add, sub, mul, div }; //转移表     while (input){printf( "*************************\n" );printf( "  1:add           2:sub  \n" );printf( "  3:mul           4:div  \n" );printf( "*************************\n" );printf( "请选择:" );scanf( "%d", &input);if ((input <= 4 && input >= 1)){printf("输入操作数:");scanf("%d %d", &x, &y);ret = (*p[input])(x, y);}else{printf( "输入有误\n" );}printf( "ret = %d\n", ret);}return 0;
}

6.指向函数指针数组的指针

指向函数指针数组的指针是一个指针

指针指向一个数组 ,数组的元素都是函数指针

void test(const char* str){printf("%s\n", str);
}
int main(){//函数指针pfunvoid (*pfun)(const char*) = test;//函数指针的数组pfunArrvoid (*pfunArr[5])(const char* str);pfunArr[0] = test;//指向函数指针数组pfunArr的指针ppfunArrvoid (*(*ppfunArr)[5])(const char*) = &pfunArr;return 0;
}

7.回调函数

回调函数就是一个通过函数指针调用的函数。

如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。

回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。

举个例子:

首先先演示一下qsort函数(快速排序)的使用:

qsot函数可以排序任意类型的数据

#include <stdio.h>
//qosrt函数的使用者须实现一个比较函数
//void*是一种无具体类型的指针
//void*的指针变量可以存放任意类型的地址
//void*的指针不能直接进行解引用、 +-*/ 操作
int int_cmp(const void * p1, const void * p2){return (*( int *)p1 - *(int *) p2);
}
int main(){int arr[] = { 1, 3, 5, 7, 9, 2, 4, 6, 8, 0 };int i = 0;qsort(arr, sizeof(arr) / sizeof(arr[0]), sizeof (int), int_cmp);for (i = 0; i< sizeof(arr) / sizeof(arr[0]); i++){printf( "%d ", arr[i]);}printf("\n");return 0;
}

使用回调函数,模拟实现qsort(采用冒泡的方式)

#include <stdio.h>
//比较函数
int int_cmp(const void * p1, const void * p2){return (*( int *)p1 - *(int *) p2);
}
void _swap(void *p1, void * p2, int size){int i = 0;for (i = 0; i< size; i++){char tmp = *((char *)p1 + i);*(( char *)p1 + i) = *((char *) p2 + i);*(( char *)p2 + i) = tmp;}
}
void bubble(void *base, int count , int size, int(*cmp )(void *, void *)){int i = 0;int j = 0;for (i = 0; i< count - 1; i++){for (j = 0; j<count-i-1; j++){if (cmp ((char *) base + j*size , (char *)base + (j + 1)*size) > 0){_swap(( char *)base + j*size, (char *)base + (j + 1)*size, size);}}}
}
int main(){int arr[] = { 1, 3, 5, 7, 9, 2, 4, 6, 8, 0 };//char *arr[] = {"aaaa","dddd","cccc","bbbb"};int i = 0;bubble(arr, sizeof(arr) / sizeof(arr[0]), sizeof (int), int_cmp);for (i = 0; i< sizeof(arr) / sizeof(arr[0]); i++){printf( "%d ", arr[i]);}printf("\n");return 0;
}

8.指针和数组的笔试题

X86环境

(X86环境下地址大小为4,X64环境下地址大小为8)

//一维数组
int a[] = {1,2,3,4};
printf("%d\n",sizeof(a));        //16(数组名a单独放在sizeof内部,计算整个数组的大小)
printf("%d\n",sizeof(a+0));      //4 (a表示首元素的地址,a+0同样表示首元素的地址)
printf("%d\n",sizeof(*a));       //4 (*a表示对首元素地址的解引用)
printf("%d\n",sizeof(a+1));      //4 (a表示首元素的地址,a+1表示第二个元素的地址)
printf("%d\n",sizeof(a[1]));     //4 (a[1]是数组的第二个元素)
printf("%d\n",sizeof(&a));       //4 (&a表示数组的地址)
printf("%d\n",sizeof(*&a));      //16(*&a表示对数组的地址的解引用)
printf("%d\n",sizeof(&a+1));     //4 (&a+1跳过整个数组后的地址)
printf("%d\n",sizeof(&a[0]));    //4 (&a[0]表示数组第一个元素的地址)
printf("%d\n",sizeof(&a[0]+1));  //4 (&a[0]+1表示数组第二个元素的地址)//字符数组
char arr[] = {'a','b','c','d','e','f'};
printf("%d\n", sizeof(arr));        //6
printf("%d\n", sizeof(arr+0));      //4
printf("%d\n", sizeof(*arr));       //1
printf("%d\n", sizeof(arr[1]));     //1
printf("%d\n", sizeof(&arr));       //4
printf("%d\n", sizeof(&arr+1));     //4
printf("%d\n", sizeof(&arr[0]+1));  //4printf("%d\n", strlen(arr));        //随机值,因为末尾没有'\0'
printf("%d\n", strlen(arr+0));      //随机值,因为末尾没有'\0'
printf("%d\n", strlen(*arr));       //报错,strlen会把97('a'的ascii值)作为起始地址统计字符串,内存访问冲突
printf("%d\n", strlen(arr[1]));     //报错,同上
printf("%d\n", strlen(&arr));       //报错,&arr是arr数组的地址,与形参参数 类型不符合
printf("%d\n", strlen(&arr+1));     //报错,同上
printf("%d\n", strlen(&arr[0]+1));  //随机值,因为末尾没有'\0'
//sizeof是操作符,任意类型均可
//sizeof获取了数据在内存中所占用的存储空间,以字节为单位来计数
//strlen是库函数,针对字符串
//strlen关注字符串中'\0'的位置,计算的是'\0'前出现了多少个字符char arr[] = "abcdef";
printf("%d\n", sizeof(arr));        //7
printf("%d\n", sizeof(arr+0));      //4
printf("%d\n", sizeof(*arr));       //1
printf("%d\n", sizeof(arr[1]));     //1
printf("%d\n", sizeof(&arr));       //4
printf("%d\n", sizeof(&arr+1));     //4
printf("%d\n", sizeof(&arr[0]+1));  //4printf("%d\n", strlen(arr));        //6
printf("%d\n", strlen(arr+0));      //6
printf("%d\n", strlen(*arr));       //报错,strlen会把97('a'的ascii值)作为起始地址统计字符串,内存访问冲突
printf("%d\n", strlen(arr[1]));     //报错,同上
printf("%d\n", strlen(&arr));       //报错,&arr是arr数组的地址,与形参参数 类型不符合
printf("%d\n", strlen(&arr+1));     //报错,同上
printf("%d\n", strlen(&arr[0]+1));  //5char *p = "abcdef";
printf("%d\n", sizeof(p));          //4
printf("%d\n", sizeof(p+1));        //4
printf("%d\n", sizeof(*p));         //1
printf("%d\n", sizeof(p[0]));       //1
printf("%d\n", sizeof(&p));         //4
printf("%d\n", sizeof(&p+1));       //4
printf("%d\n", sizeof(&p[0]+1));    //4printf("%d\n", strlen(p));          //6
printf("%d\n", strlen(p+1));        //5
printf("%d\n", strlen(*p));         //报错
printf("%d\n", strlen(p[0]));       //报错
printf("%d\n", strlen(&p));         //报错
printf("%d\n", strlen(&p+1));       //报错
printf("%d\n", strlen(&p[0]+1));    //5//二维数组
int a[3][4] = {0};
printf("%d\n",sizeof(a));           //48
printf("%d\n",sizeof(a[0][0]));     //4
printf("%d\n",sizeof(a[0]));        //16
printf("%d\n",sizeof(a[0]+1));      //4
printf("%d\n",sizeof(*(a[0]+1)));   //4
printf("%d\n",sizeof(a+1));         //4
printf("%d\n",sizeof(*(a+1)));      //16
printf("%d\n",sizeof(&a[0]+1));     //4
printf("%d\n",sizeof(*(&a[0]+1)));  //16
printf("%d\n",sizeof(*a));          //16
printf("%d\n",sizeof(a[3]));        //16

总结
数组名意义

  1. sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小。
  2. &数组名,这里的数组名表示整个数组,取出的是整个数组的地址。
  3. 除此之外所有的数组名都表示首元素的地址。

9.指针笔试题

笔试题1

int main(){int a[5] = { 1, 2, 3, 4, 5 };int *ptr = (int *)(&a + 1);printf( "%d,%d", *(a + 1), *(ptr - 1));return 0;
}
//2,5

笔试题2

struct Test{int Num;char *pcName;short sDate;char cha[2];short sBa[4];
}*p;int main(){printf("%p\n", p + 0x1);printf("%p\n", (unsigned long)p + 0x1);printf("%p\n", (unsigned int*)p + 0x1);return 0;
}
//00000014
//00000001
//00000004

笔试题3

int main(){int a[4] = { 1, 2, 3, 4 };int *ptr1 = (int *)(&a + 1);int *ptr2 = (int *)((int)a + 1);printf( "%x,%x", ptr1[-1], *ptr2);return 0;
}
//4,2000000

笔试题4

int main(){int a[3][2] = { (0, 1), (2, 3), (4, 5) };int *p;p = a[0];printf("%d", p[0]);return 0;
}
//1

笔试题5

int main(){int a[5][5];int(*p)[4];p = a;printf( "%p,%d\n", &p[4][2] - &a[4][2], &p[4][2] - &a[4][2]);return 0;
}
//FFFFFFFC,-4

笔试题6

int main(){int aa[2][5] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };int *ptr1 = (int *)(&aa + 1);int *ptr2 = (int *)(*(aa + 1));printf( "%d,%d", *(ptr1 - 1), *(ptr2 - 1));return 0;
}
//10,5

笔试题7

int main(){char *a[] = {"work","at","alibaba"};char**pa = a;pa++;printf("%s\n", *pa);return 0;
}
//at

笔试题8

int main(){char *c[] = {"ENTER","NEW","POINT","FIRST"};char**cp[] = {c+3,c+2,c+1,c};char***cpp = cp;printf("%s\n", **++cpp);printf("%s\n", *--*++cpp+3);printf("%s\n", *cpp[-2]+3);printf("%s\n", cpp[-1][-1]+1);return 0;
}
//POINT
//ER
//ST
//EW

10.附录(qsort的使用)

#include<string.h>
#include<stdio.h>
#include<stdlib.h>//qsort的头文件struct Student{int id;char name[50];	
};int int_cmp(const void* a, const void* b){return *(int*)a - *(int*)b;
}
int char_cmp(const void* a, const void* b){return *(char*)a - *(char*)b;
}
int double_cmp(const void* a, const void* b){return *(double*)a > *(double*)b ? 1 : -1;
}
int struct_cmp(const void* a, const void* b) {return ((struct Student*)a)->id - ((struct Student*)b)->id;
}
int str_cmp(const void* a, const void* b) {return strcmp(*(char**)a, *(char**)b);
}int main() {//int排序int num[5] = { 1,3,9,5,2 };qsort(num, sizeof(num) / sizeof(num[0]), sizeof(num[0]), int_cmp);for (int i = 0; i < sizeof(num) / sizeof(num[0]); i++) {printf("%d ", num[i]);}printf("\n");//char排序char word[5] = "CADB";qsort(word, sizeof(word) / sizeof(word[0]), sizeof(word[0]), char_cmp);for (int i = 0; i < sizeof(word) / sizeof(word[0]); i++) {printf("%c ", word[i]);}printf("\n");//double排序double in[5] = { 1.23,3.14159,2.6,5.74,4.11 };qsort(in, sizeof(in) / sizeof(in[0]), sizeof(in[0]), double_cmp);for (int i = 0; i < sizeof(in) / sizeof(in[0]); i++) {printf("%lf ", in[i]);}printf("\n");//struct排序struct Student stu[3] = { {2,"小明"},{1,"小李"},{3,"小红"} };qsort(stu, sizeof(stu) / sizeof(stu[0]), sizeof(stu[0]), struct_cmp);for (int i = 0; i < sizeof(stu) / sizeof(stu[0]); i++) {printf("%d%s ", stu[i].id,stu[i].name);}printf("\n");//string排序char *str[5] = { "AAA","EEE","CCC","BBB","DDD" };qsort(str, sizeof(str) / sizeof(str[0]), sizeof(str[0]), str_cmp);for (int i = 0; i < sizeof(str) / sizeof(str[0]); i++) {printf("%s ", str[i]);}printf("\n");return 0;
}
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 2022北京高新技术企业各区申报奖励及认定条件介绍,补贴30-50万

    2022北京高新技术企业各区申报奖励&#xff0c;补贴30-50万。企业研究开发费用&#xff0c;可按照研究开发费用的75%加计扣除;形成无形资产的&#xff0c;按照无形资产成本的175%摊销&#xff1b;所得税率由25%减按15%缴纳&#xff0c;鼓励企业吸引人才&#xff0c;建立研发机构…...

    2024/4/14 15:48:13
  2. 从不被看好到逆袭成王 小鹏P7“神车”的逆行缩影

    2022年初&#xff0c;备受关注的新势力车企们就陆续公布了去年的交付量成绩&#xff0c;引发市场持续热议。 对比各家数据来看&#xff0c;小鹏汽车完全成为新势力的C位&#xff0c;2021年以98155辆的交付量成绩跻身第一&#xff0c;傲视整个新势力赛道。更令同行侧目的是&…...

    2024/4/14 15:48:33
  3. 字符串专题【C语言】

    目录&#xff1a; 考试的时候老师最讨厌有人抄袭了。 自从有了电子评卷&#xff0c;老师要查找雷同卷&#xff0c;就容易多了&#xff0c;只要将两个人的答案输入计算机&#xff0c;进行逐个字符的比对&#xff0c;把相同的位置都找出来&#xff0c;就一目了然了。 输入格式 …...

    2024/4/14 15:49:19
  4. 洛谷P2241 统计方形(数据加强版)C语言

    题目背景 1997年普及组第一题 题目描述 有一个 nm 方格的棋盘&#xff0c;求其方格包含多少正方形、长方形&#xff08;不包含正方形&#xff09;。 输入格式 一行&#xff0c;两个正整数 n,mn,m&#xff08;n \leq 5000,m \leq 5000n≤5000,m≤5000&#xff09;。 输出格…...

    2024/4/25 8:00:26
  5. create-react-app 脚手架 中按需引入Antd 样式

    参考Antd 3.26.19 1、导入Antd yarn add antd 注&#xff1a;yarn 可以通过 npm install -g yarn 安装&#xff0c; 可以通过 yarn --version 查看yarn 版本 2、导入react-app-rewired customize-cra yarn add react-app-rewired customize-cra3、配置修改package.json &…...

    2024/4/19 14:00:50
  6. JAVA版B2B2C商城源码 多商家入驻商城系统 直播带货 新零售商城 o2o商城 电子商务 拼团商城 分销商城 直播商城

    源码地址来源&#xff1a; https://minglisoft.cn/honghu2/business.html 直播带货源码&#xff1a; /*** Copyright © 2012-2017 <a href"http://minglisoft.cn">HongHu</a> All rights reserved.*/ package com.honghu.cloud.controller;import …...

    2024/4/21 17:23:00
  7. HCIP部分知识

    OSPF的选路原则 域内 --- 1类&#xff0c;2类LSA 域间 --- 3类LSA 域外 --- 5类&#xff0c;7类LSA --- 根据开销值的计算规则不同&#xff0c;还分为类型1和类型2. 1&#xff0c;如果学到的路由都是通过1类&#xff0c;2类LSA获取的域内路由 --- 这种情况直接比较开销值&#…...

    2024/4/18 19:54:18
  8. 【设计模式5】适配器模式

    基本介绍 适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示&#xff0c;主的目的是兼容性&#xff0c;让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)适配器模式属于结构型模式主要分为三类&#xff1a;类适配器模…...

    2024/5/5 21:19:30
  9. 思维导图APP开发独立源码部署

    思维导图APP开发&#xff0c;思维导图APP开发独立源码部署。思维模式决策了为人处事的高效率&#xff0c;逻辑思维导图给很多人产生过益处&#xff0c;乃至可以说成取得成功的重要。逻辑思维导图APP不但能让用户线上开创观念导图&#xff0c;还可以把笔记开展收拾归类&#xff…...

    2024/4/20 9:49:48
  10. 金融云原生漫谈(六)|你在用的云原生平台真的安全吗?

    在金融行业数字化转型的驱动下&#xff0c;国有银行、股份制银行和各级商业银行也纷纷步入容器化的进程。 如果以容器云上生产为目标&#xff0c;那么整个容器云平台的设计、建设和优化对于银行来说是一个巨大的挑战。如何更好地利用云原生技术&#xff0c;帮助银行实现敏捷、轻…...

    2024/4/18 5:15:13
  11. 2019中级Android开发面试解答之Handler,移动端开发基础

    具体分为四大要素 Message&#xff08;消息&#xff09;&#xff1a;需要被传递的消息&#xff0c;消息分为硬件产生的消息&#xff08;如按钮、触摸&#xff09;和软件生成的消息。MessageQueue&#xff08;消息队列&#xff09;&#xff1a;负责消息的存储与管理&#xff0c…...

    2024/4/18 11:44:39
  12. 无重复字符的最长字串

    力扣算法题《无重复字符的最长字串》的思考和详解一.问题描述1.这道题的思考2.步骤一3.步骤二4.步骤三5.合并6.运行结果二.滑动窗口优化1.滑动窗口解释2.程序3.图解三、再优化1.步骤详解2.图解3.一个细节4.展示你的代码四、最后一.问题描述 给定一个字符串 s &#xff0c;请你…...

    2024/5/5 2:58:34
  13. AcWing 323 战略游戏 题解(动态规划—DP—树形DP)

    原题传送门 #include<bits/stdc.h>using namespace std;const int N 1510;int n; int e[N], h[N], ne[N], idx; int f[N][2]; /* f[i][0]表示第i个节点没有放士兵时&#xff0c;以i为根节点的子树所含的最小士兵数 f[i][1]表示第i个节点放士兵时&#xff0c;以i为根节点…...

    2024/4/18 13:43:05
  14. 要怎样才不会被人发现手机里的聊天软件

    现在的人很多人都有自己的私密空间藏着自己的秘密&#xff0c;但是结婚之后却感觉没有了秘密&#xff0c;老婆经常会看你的微信、qq以及其他的社交软件&#xff0c;而且女生对于主流的交友软件都十分的了解!说不定一不小心就撞枪口上了&#xff0c;所以为大家找到一款非常棒的聊…...

    2024/5/4 13:50:46
  15. vue springboot前后端分离 文件预览

    vue前端代码 methods: {getfile() {this.ylLoading true;const userReqData {contractNum: this.formObj.contractNum}crudBilling.getfile(userReqData).then(res > {this.ylLoading false;let blob new Blob([res], {type: application/pdf // 后台返回 pdf 类型的文件…...

    2024/4/14 15:49:29
  16. oracle 19c 在大部分数据为 null 的列上创建索引

    os: centos 7.6 db: oracle 19c 版本 # cat /etc/centos-release CentOS Linux release 7.6.1810 (Core) # # su - oracle $ sqlplus as sysdba; SQL*Plus: Release 19.0.0.0.0 - Production on Tue Jan 18 17:40:38 2022 Version 19.3.0.0.0Copyright (c) 1982, 2019, Orac…...

    2024/4/14 15:49:09
  17. MATLAB 数据类型转换

    &#xff08;1&#xff09;整型 整数类型有8位、16位、32位、64位 x uint8(129) x int8(127) (2)浮点型 单精度4个字节&#xff0c;双精度8个字节 single函数&#xff1a;转为单精度类型 double函数&#xff1a;转为双精度类型 &#xff08;3&#xff09;复数型 real…...

    2024/5/4 14:10:09
  18. HuaWei ❉ IPv4基本原理

    一 IPv4协议族 IPv4协议族是TCP/IP协议族中最为核心协议族&#xff1b;IPv4协议族主要包括地址解析协议ARP、逆地址解析协议RARP、互联网控制消息协议ICMP、传输控制协议TCP、用户数据报文协议UDP等协议&#xff1b; ARP和RARP的功能是地址解析&#xff0c;介于数据链路层和网络…...

    2024/4/19 5:45:11
  19. 重新理解prominse(巩固基础)(一)

    同步编程与异步编程 同步行为和异步行为的对立统一是计算机科学的一个基本概念。异步行为是为了优化因计算量大而 时间长的操作。 同步行为与异步行为 同步操作的例子可以是执行一次简单的数学计算&#xff1a; let x 3; x x 4; 异步操作的例子可以是在定时回调中执行一次…...

    2024/4/14 15:48:59
  20. 1549页Android最新面试题含答案(1),太完整了

    19.静态代理和动态代理的区别&#xff0c;什么场景使用&#xff1f; 由程序员创建或由特定工具自动生成源代码&#xff0c;再对其编译。在程序运行前&#xff0c;代理类的.class文件就已经存在了。动态代理类&#xff1a;在程序运行时&#xff0c;运用反射机制动态创建而成。 …...

    2024/4/14 15:49:04

最新文章

  1. 上海亚商投顾:沪指缩量调整 合成生物概念股持续爆发

    上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 沪指昨日缩量震荡调整&#xff0c;深成指、创业板指均跌超1%。细胞免疫治疗概念股大涨&#xff0c;冠昊生物、…...

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

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

    2024/5/7 10:36:02
  3. 巨控科技新品发布:全方位升级,引领智能控制新纪元

    标签: #巨控科技 #智能控制 #新品发布 #GRM560 #OPC560 #NET400 在智能控制领域&#xff0c;巨控科技始终以其前沿技术和创新产品引领着市场的潮流。近日&#xff0c;巨控科技再次以其行业领先的研发实力&#xff0c;推出了三大系列的新产品&#xff0c;旨在为各行各业提供更…...

    2024/5/5 9:14:44
  4. 逆向案例十二——看准网企业信息json格式的信息

    网址&#xff1a;【全国公司排行|排名榜单|哪家好】-看准网 打开开发者工具——刷新——网络——XHR——下滑页面加载新的页面——找到数据包 发现参数加密&#xff0c;返回的数据也进行了加密 按关键字在下方搜索 kiv进入第一个js文件 ctrlf打开文件里面的搜索框继续搜kiv找到…...

    2024/5/7 18:56:56
  5. 【外汇早评】美通胀数据走低,美元调整

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

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

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

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

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

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

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

    2024/5/9 4:20:59
  9. 【外汇早评】日本央行会议纪要不改日元强势

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2024/5/9 7:32:17
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

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

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

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

    2022/11/19 21:17:18
  26. 错误使用 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
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

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

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

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

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

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

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

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

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

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

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

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

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,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
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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