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

天猫官方网站首页可口可乐搜索引擎营销案例

天猫官方网站首页,可口可乐搜索引擎营销案例,龙胜做网站的公司,建设综合信息网站需要多少钱二级指针定义个数组 char* str[10]; //表示定义了一个包含 10个 char*类型 数组char* str[10] { "hello","world","china"};此时数组的元素类型 --- 指针类型 --- 指针类型的数组 --- 指针数组 --- 目的处理多…

二级指针

定义个数组 


char* str[10]; //表示定义了一个包含 10个 char*类型 数组

char* str[10] = { "hello","world","china"};

此时数组的元素类型 --- 指针类型                 --- 指针类型的数组 
--- 指针数组                  --- 目的处理多个指针

此时 这是一个 指针类型的数组 --- 首元素的地址 str[0]     //元素类型 char *
&str[0]      //地址类型 char* *


二级指针 


char * *p;             //如果要保存的是 一个 一级指针变量所在空间的的地址 

&p    //p所在空间的数据类型 char**
//char***                                     


int  a = 10;          //整型变量 对应要开要给4字节空间  有空间 就有地址 
int * p = &a;        //p也是变量(一级指针变量) 是变量 就有空间 有空间 就有地址
int* * q = &p;       //q也是变量(二级指针变量) 是变量 就有空间 有空间 就有地址
int** *r = &q;       //三级指针 

----------------------------------------------------------------
r   //r中放的是 q的地址 
*r   //就相当于是q  q中放的就是 p的地址 
**r   //*q 相当于p  p中放的是 a 的地址
***r  //*p 相当于a  就是a中的值 10

小结:
想要保存一个【普通变量】的地址 定义一个一级指针 
想要保存一个【一级指针变量】的地址 定义二级指针 
想要保存一个【二级指针变量】的地址 定义三级指针
... ...


练习: 
找出最大值 


--------------------------------------------------------------------
练习:
逆序 


练习:
排序  
比的是字符串 
换的是数组中的地址值


练习:
查找 


--------------------------------------------------------------------
char s[3][10] = {"hello","world","china"};
char (*p)[10] = s; //p称为 数组指针

                                    --- 指向目标 ---数组类型 


char *s[10] = {"hello","world","china"};

                       //指针数组 
char **p = s; //二级指针 

数组(的)指针 --- 本质 --- 指针  --- 基类型 是数组类型 
指针(的)数组 --- 本质 --- 数组  --- 元素类型 是 指针 
---------------------------------------------------------------------

指针 和 函数 


//指针(的)函数  --- 本质 ---函数---只是 返回值是指针类型而已 
表示 返回值类型 为指针类型的函数 

char * strcpy
char * strcat 


注意:
1.函数可以返回地址 
但是,不能是局部变量(auto--栈上)的地址,auto的局部变量的生命周期 随着函数调用开始存在,函数调用结束销毁

2.局部变量想要返回值地址 
 static 

堆区空间:
特点:   1. 大 
2. 手动申请,手动释放 

   函数 
 void *malloc(size_t size);
功能: 
堆区申请空间 
参数:
@size 表示申请的大小 
返回值:
成功 返回申请到的堆区空间的地址 
失败  NULL


void free(void *ptr);
功能:
释放堆区的空间 
参数:
@pstr 之前用malloc申请到的堆区空间的地址 

      
NULL    //空指针 
void *    //空类型指针
//万能指针 
//  表示可以接收任意类型的指针 
注意:
如果通过 void *类型的地址 进行解引用操作会报错,
如果要用,必须转换为 具体的类型

    *p   //解引用 

p   //放的是一个地址 --- 引用 
*p  //解引用 


注意:
内存泄露 
申请了空间,但是用完后,没有释放
free 不能多次释放 
练习:
int a[10];
要求,定义一个数组,放在堆上 
输入10个值,输出 



函数指针 

通过指针 指向 函数 

int add(int a,int b)
{
return a + b;
}
add //函数名  --- 代表的是函数的入口地址 
//函数名是标识符 
//函数也是一种类型 
//去掉标识符 --- 剩下就是标识符对应的数据类型 
//int (int a,int b) --- 函数类型 --- 表示是一类函数 ,返回值为int型 ,带有两个int型形参这么一类函数

void *p = add;

int (int a,int b) * p = add;  //定义了一个指向 函数 的 指针 
-----函数类型--------- 

int (*p) (int,int)  = add;  //定义了一个指向 函数 的 指针 


add(a,b);

p(a,b)

注意:
  函数指针 *运算不起作用 
一般不用写 * 


直接用指针变量 进行函数调用
p(a,b); 


函数回调


main函数的参数:

const char *s[]  = {"hello","world","china"};

const char * argv[] //数组 --指针数组 ---const char * 
const char ** arg   //编译器最终理解的形式 

int main(int argc,const char *argv[])

argc  命令行参数的个数 
argv  表示命令参数对应字符串的 一个指针数组 


考点:

会出现段错,因为char *str的值不能通过*p更改,

  1. 值传递的局限性getmemory函数接收的是char*类型的参数,这是值传递。在函数内部修改p的值(分配内存)不会影响外部的str指针,因为函数只得到了str的副本。

  2. 野指针操作str始终保持NULL,调用strcpy(str, "hello")会尝试向NULL地址写入数据,导致程序崩溃。

  • 方案 1:通过函数返回值将malloc分配的地址返回给外部指针(更直观)。
  • 方案 2:使用二级指针char**p,通过解引用修改外部指针的值(*p = ...)。

http://www.dtcms.com/a/601575.html

相关文章:

  • 论文解读 - 大型多模态模型中现实世界个性化基准测试
  • 培训学校网站建设要点做一个网站最低多少钱
  • 企业网站备案 过户网上询价
  • 现代Java Web应用部署全栈实战:Tomcat集群+JDK17+Spring Boot+Nginx负载均衡
  • 东莞网站建设公司口碑排名网站开发怎么让别人看到
  • 网站备案要烟台网站制作工具
  • 医疗电子发票真伪查验API-财政票据查验-接口技术解析
  • Aloudata Agent 重磅功能发布:“用户编排思路、AI 精准执行、可沉淀复用”的模块化分析报告
  • ThreadLocal 结构设计的精妙之处
  • 【Numpy数据运算】数组间运算
  • discuz修改网站底部网站建设平台推荐
  • 大型 GPU 服务集群监控方案(>50 节点)
  • 从零到一:编写一个简单的 Umi 插件并发布到 npm
  • 企业做网站的费用如何科目邢台哪个公司做网站好
  • R语言编译器使用技巧与常见问题
  • 国内哪家网站做的系统纯净南京网站开发荐南京乐识
  • 网站建设单选题wordpress新手教程
  • 白牌笔记本电脑制造商能提供哪些定制服务?
  • ubuntu 22.04 升级openssh默认版本8.9p1 到10.1p1
  • User Prompt 与 System Prompt:大模型沟通的“双引擎”机制深度拆解
  • 在Anaconda Prompt完成模型训练
  • AR党建互动台-VR智慧党建沙盘-AR党建识别桌
  • 济宁做网站的大连建设
  • 建设银行新版网站上线免费网站如何赚钱
  • [Linux]学习笔记系列 -- [kernel]kthread
  • 网站开发备案帮企业做网站
  • 链盾shieldchain | 数据库、用户注册、登录、标识查询、商业软件申请和处理、消息
  • C++ set 容器:有序唯一元素集合的深度解析与实战
  • 前端的dist包放到后端springboot项目下一起打包
  • Swift 6.2 列传(第六篇):内存安全的 “峨眉戒令”