首页 > 其他分享 >C语言---指针

C语言---指针

时间:2024-05-28 09:30:58浏览次数:32  
标签:变量 int ret C语言 --- 地址 类型 指针

概念:

指针就是指地址, 指针是一种数据类型,专门用来存储地址这种数据的数据类型。

指针变量的定义:

基类型 * 变量名;

eg:
int a = 10 ;
int *p = &a;

*p运算:
1、首先拿出p中地址,到内存中定位
2、定位到之后,从定位处开始,偏移出sizeof( 基类型 ) 的一块空间
3、将这块空间当作一个基类型的(变量)来看

(可以使用强转将不同类型的变量放在指针中)

    &*p  //&(*p)  相当于取a的地址
    
    打印地址使用 ------> %p 
    
    *&p   //  ====》 p本身
              //p存放的是int * 
              // &p ==> 对应地址的类型是 int**  //int*表示基类型 后面的*表示说是一个地址类型的数据
              //*(&p)  《==》  基类型变量来看(int*类型的一个变量)  
    
    *&a   // 也就是a
    
    &*a   //会报错 a不是一个指针类型的变量 所以不能编译!运算类型不对
    

指针初始化:
int *p; //野指针  ---  指向不明确的指针    

int *p = NULL ;  //NULL是 地址 0。  

--------------------------------
连续定义多个指针变量的时候:
eg:    int *p1,*q1,*r1;                  //不能使用int *p,q,r;
    
    
为什么需要指针?
有些时候,不使用指针,没有办法达到想要的效果!

一次函数调用只能返回一个结果,可以通过指针的调用返回多个结果。    
eg:
 int add(int a, int b , int *rAdd)
 { 
     int ret ;
     ret = a + b;
     *rAdd = ret;     //通过指针的间接访问实现 被调函数 修改 主调函数中的 变量
     return re
 }
 
 int main(void)
{
    int ret1 = 0;
    printf("%d",add(1,2,&ret1));   //此时ret1中的数据就变成了ret的值啦,也就是3
}    
    
    
注意:
  使用方法:(被调修改主调)
  1、 要修改谁,就把谁的地址传过去
  2、 !!!!一定要对其做 * 运算
    
    

标签:变量,int,ret,C语言,---,地址,类型,指针
From: https://blog.csdn.net/weixin_66436813/article/details/139253841

相关文章

  • PMI-RMP国内首批持证学员:风险管理不仅仅是识别和应对风险,更是一种系统性的方法论!
    Hi~我是杨林。曾任大型企业项目经理,具有多次创业经验,担任过大型项目敏捷教练。拥有项目管理,风险管理,敏捷教练等认证。应立智教育老师邀请,把我学习PMI-RMP风险认证之后的一些感受和心路历程分享给大家,给学弟学妹们一些参考。背景:首先我是立智教育开展国内首批PMI-RMP认证班的......
  • 免费,Python蓝桥杯等级考试真题--第13级(含答案解析和代码)
    Python蓝桥杯等级考试真题–第13级一、选择题答案:C解析:正向下标由0开始,下标3代表第四个元素,故答案为C。答案:A解析:range(0,4)的取前不取后,元组的符号是小括号,故答案为A。答案:C解析:Cherry所在的位置为下标2,故答案为C。二、编程题【参考程序】a=input()b=a.split......
  • ABPVNext问题集锦-SwaggerUI的配置问题,配置Schema自动展开
    一,ABP框架中,运行的SwaggerUI中,默认情况下,不管Post还是Get等请求接口的Schema默认情况是折叠的,前端接入接口时需要一个个手动点开,如果参数过多比如100个参数 要点100次,使用不是太方便,或那种又有查询、又有新增,并且json里面各种套,对象里面有数组,数组里面套数据,  这种参数就很多了......
  • 《计算机网络微课堂》4-5 静态路由配置及其可能产生的路由环路问题
    ‍本节课我们介绍静态路由配置及其可能产生的路由环路问题,静态路由配置是指用户或网络管理员使用路由器的相关命令,给路由器人工配置路由表,这种人工配置方式简单,开销小,但不能及时适应网络状态(流量、拓扑等)的变化,一般只在小规模网络中。采用使用静态路由配置,可能出现以下导致产生......
  • 《计算机网络微课堂》4-4 IP数据报的发送和转发过程
    本节课我们介绍IP数据报的发送和转发过程。IP数据报的发送和转发过程包含以下两部分,一部分是主机发送IP数据报,另一部分是路由器转发IP数据报。需要说明的是为了将重点放在TCP协议站的网际层,发送和转发IP数据报的过程上,在本节课的举例中,我们将忽略使用ARP协议来获取......
  • 《计算机网络微课堂》4-3 IPv4地址
    开始讲IP地址。‍4.3.1IPv4地址概述本节课我们介绍IPv4地址的基本概念:在TCPIP体系中,IP地址是一个最基本的概念,我们必须把它弄清楚IPv4地址就是给因特网上的一台主机或路由器的每一个接口,分配一个在全世界范围内是唯一的32比特的标识符IP地址,由因特网名字和数字......
  • 《计算机网络微课堂》4-2 网络层提供的两种服务
    本节课我们介绍网络层提供的两种服务,一种是面向连接的虚电路服务,另一种是无连接的数据报服务。‍我们首先来看面向连接的蓄电路服务,如图所示,这是一个小型的互联网,这是主机中的五层原理体系结构。虚电路服务的核心思想是:可靠通信,应由网络自身来保证当两台计算机进行通信时,应......
  • 《计算机网络微课堂》4-8 网际控制报文协议ICMP
    本节课我们介绍网际控制报文协议ICMP(InternetControlMessageProtocol):‍为了更有效的转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP主机或路由器使用ICMP协议来发送差错报告报文和询问报文ICMP报文被封装在IP数据报中发送ICMP差错报告......
  • 《计算机网络微课堂》4-7 IPv4数据报的首部格式
    本节课我们介绍IPv4数据报的首部格式,为了简单起见,之后我们将IPv4数据报简称为IP数据报,而不指出、版本号。IP数据报的首部格式及其内容是实现IP协议主要功能的基础,因此我们有必要搞清楚这部分内容,如图所示:​​这是IP数据报的首部格式,它由20字节的固定部分和最大40......
  • 03-代词
    代词分类:人称代词、物主代词、反身代词、相互代词、指示代词、不定代词、疑问代词、连接代词、关系代词1.人称代词人称代词两种格式:主格、宾格主格:I、you、she、he、it、we、they宾格:me、you、her、him、it、us、them1.1.主格作主语,宾格作宾语如:Sheisveryhappy.(不能说......