当前位置: 首页 > news >正文

如何在网站网站做代理网络舆情分析的内容

如何在网站网站做代理,网络舆情分析的内容,虚拟机做实验的网站,顺德大良那里做网站好指针基础知识#xff1a;C语言学习笔记之指针#xff08;一#xff09;-CSDN博客 目录 字符指针 代码分析 指针数组 数组指针 函数指针 代码分析#xff08;出自《C陷阱和缺陷》#xff09; 函数指针数组 指向函数指针数组的指针 回调函数 qsort() 字符指针 一…指针基础知识C语言学习笔记之指针一-CSDN博客 目录 字符指针 代码分析 指针数组 数组指针 函数指针 代码分析出自《C陷阱和缺陷》 函数指针数组 指向函数指针数组的指针 回调函数 qsort() 字符指针 一般用法 特殊用法 上述代码的本质是把字符串 hello bit. 的首字符的地址放到了pstr中。因为hello bit.是一个常量字符串是存放在代码段的数据所以不能被修改因此要用const 修饰来防止权限的放大。 代码分析 这里str3和str4指向的是一个同一个常量字符串。C/C会把常量字符串存储到单独的一个内存区域当几个指针指向同一个字符串的时候他们实际会指向同一块内存。但是用相同的常量字符串去初始化不同的数组的时候就会开辟出不同的内存块。所以str1和str2不同str3和str4相同。 指针数组 指针数组是一种数组数组内的每个元素的类型是指针类型。 用指针数组模拟实现一个二维数组 #include stdio.hvoid print(int** arr, int row, int col) {int i 0;for (i 0; i row; i){int j 0;for (j 0; j col; j){printf(%d , *(*(arr i) j)); //等价于 printf(%d , arr[i][j]);//printf(%d , arr[i][j]);}printf(\n);}} int main() {int arr1[] { 1, 2, 3, 4, 5 };int arr2[] { 2, 3, 4, 5, 6 };int arr3[] { 3, 4, 5, 6, 7 };int* arr[] { arr1, arr2, arr3 };print(arr, 3, 5);return 0; } 注模拟的二位数组在内存中并不一定连续存放因此它不是真的二维数组。 数组指针 我们已经熟悉   整形指针 int * pint; 能够指向整形数据的指针。  浮点型指针 float * pf; 能够指向浮点型数据的指针。         同理数组指针就是指向数组的指针即存放数组地址的指针变量。 写一个打印二维数组的函数形参是数组指针 #include stdio.h void print_arr1(int arr[3][5], int row, int col) {int i 0;for (i 0; i row; i){int j 0;for (j 0; j col; j){printf(%d , arr[i][j]);}printf(\n);} } void print_arr2(int(*arr)[5], int row, int col) //数组指针接收 {int i 0;for (i 0; i row; i){int j 0;for (j 0; j col; j){printf(%d , *(*(arr i) j));}printf(\n);} } int main() {int arr[3][5] { 1,2,3,4,5,6,7,8,9,10 };print_arr1(arr, 3, 5);//数组名arr表示首元素的地址//但是二维数组的首元素是二维数组的第一行二维数组可以看成是一维数组的数组即二维数组的每个元素是一个一维数组//所以这里传递的arr其实相当于第一行的地址是一维数组的地址//可以数组指针来接收printf(\n);print_arr2(arr, 3, 5);return 0; } 类型分析 函数指针 函数也是有地址的顾名思义函数指针就是指向函数的指针即存放函数地址的指针变量。         函数指针类型函数返回值类型 (*指针变量名)(函数参数)。 #include stdio.h void test() {printf(hehe\n); } int main() {printf(%p\n, test);printf(%p\n, test);return 0; } 根据上述代码的执行结果我们可以看出函数名表示函数地址地址函数名也表示函数地址即 函数名 函数名所以 *函数名 * 函数名 而*函数名 函数名因此 函数名 函数名 * 函数名。 首先能存储地址就要求pfun1或者pfun2是指针那哪个是指针 答案是pfun1可以存放。pfun1先和*结合说明pfun1是指针指针指向的是一个函数指向的函数无参数返回值类型为void。pfun2先和结合表示pfun2是一个没有参数返回类型是void* 的函数。 代码分析出自《C陷阱和缺陷》 (*(void (*)())0)(); void (*signal(int , void(*)(int)))(int); 利用 typedef 简化上述代码 函数指针数组 存放函数指针的数组就叫做函数指针数组。 parr1 先和 [] 结合说明 parr1是数组数组的内容是什么呢 是 int (*)() 类型的函数指针。         函数指针数组的用途转移表 示例计算器 #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( 0:exit \n);printf(*************************\n);printf(请选择);scanf(%d, input);if ((input 4 input 1)){printf(输入操作数);scanf(%d %d, x, y);ret (*p[input])(x, y);}else if (input 0){printf(程序退出\n);break;}elseprintf(输入有误\n);printf(ret %d\n, ret);}return 0; } 指向函数指针数组的指针 顾名思义指针指向的是一个每个元素是函数指针的数组。 回调函数 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针地址作为参数传递给另一个函数当这个指针被用来调用其所指向的函数时我们就说这是回调函数。回调函数不是由该函数的实现方直接调用而是在特定的事件或条件发生时由另外的一方调用的用于对该事件或条件进行响应。回调函数是一种泛型编程思维库函数 qsort() 就运用了回调函数。 qsort() qsort()可以给任意类型整型浮点型结构体等的数据排序但是需要我们按要求提供一个比较函数。 用冒泡排序模拟实现一个类似 qsort() 的函数 #include stdio.hvoid swap(char* p1, char* p2, size_t size) //交换arr[j],arr[j1]这两个元素 {int i 0;for (i 0; i size; i){char tmp *p1;*p1 *p2;*p2 tmp;p1;p2;} }void bubble_sort(void* base, size_t num, size_t size, int (*cmp)(const void*, const void*)) {int i 0;//趟数for (i 0; i num - 1; i){int j 0;//一趟内部比较的对数for (j 0; j num - 1 - i; j){//假设需要升序cmp返回0交换if (cmp((char*)base j * size, (char*)base (j 1) * size) 0) //两个元素比较需要将arr[j],arr[j1]的地址要传给cmp{//交换swap((char*)base j * size, (char*)base (j 1) * size, size);}}} }int cmp_int(const void* p1, const void* p2) //回调函数 {return *(int*)p1 - *(int*)p2; }//测试bubble_sort 排序整型数据 void test1() {int arr[10] { 1, 3, 5, 7, 9, 2, 4, 6, 8, 0 };int sz sizeof(arr) / sizeof(arr[0]);bubble_sort(arr, sz, sizeof(int), cmp_int); }struct Stu {char name[20];int age; };int cmp_stu_by_age(const void* p1, const void* p2) //回调函数 {return ((struct Stu*)p1)-age - ((struct Stu*)p2)-age; }//测试bubble_sort 排序结构体数据比较年龄 void test2() {struct Stu arr[] { {zhangsan, 20}, {lisi, 50},{wangwu, 15} };int sz sizeof(arr) / sizeof(arr[0]); bubble_sort(arr, sz, sizeof(arr[0]), cmp_stu_by_age); }int cmp_stu_by_name(const void* p1, const void* p2) //回调函数 {return strcmp(((struct Stu*)p1)-name, ((struct Stu*)p2)-name); }//测试bubble_sort 排序结构体数据比较名字 void test3() {struct Stu arr[] { {zhangsan, 20}, {lisi, 50},{wangwu, 15} };int sz sizeof(arr) / sizeof(arr[0]);printf(%d\n, sizeof(struct Stu));bubble_sort(arr, sz, sizeof(arr[0]), cmp_stu_by_name); }int main() {test1();test2();test3();return 0; }
http://www.dnsts.com.cn/news/125029.html

相关文章:

  • 网站改备案信息吗跨境电商免费平台有哪些
  • 最佳商城ui网站设计网页设计与制作课程心得
  • 网站建设指导思想和目标网站设计集团
  • 郴州文明网网站石家庄最新事件
  • 做网站建设费用预算网站设计实施
  • 衡水做网站推广网站跟网页的区别是什么
  • 免费公司注册网站吗有哪些做的好的小众网站
  • 云主机怎么安装网站百度竞价排名是什么意思
  • 网站建设与设计饰品网站模板html整站
  • 西安市长安区规划建设局网站定制网站型网站开发
  • 广州外贸网站建设 openphp网站怎么做自适应
  • 广州营销型网站建设团队小程序直播开发教程
  • idc网站源码下载上海网站建设seo站霸网络
  • 营销网站的渠道构成基本包括乌海做网站
  • 二级域名做网站好不好重庆市城市建设投资公司网站
  • 建html5网站建设公共网站的手续
  • 做网站专业公司电话有赞微商城app官方下载
  • 如何优化基础建站汾阳做网站的公司
  • html网站怎么做几个网页好的外贸平台
  • seo与网站优化新闻客户端网站开发
  • 甘肃省建设厅执业资格注册中心网站通知市通建设工程质量监督局网站
  • 南宁会制作网站的技术人员网站配色 原则
  • 做网站开发电脑配置页面设计优缺点
  • 做游戏网站选服务器绍兴建站模板厂家
  • 青海省住房和城乡建设厅官方网站免费发布网站seo外链
  • 网站推广员株洲在线论坛二手市场
  • 网站建设与维护面试推广平台使用
  • 做烧烤的网站搜索网站logo怎么做
  • 免费网站建设行情wordpress把
  • 旅游网站源码网站怎么做跳出提示筐