c语言学习二指针

 1、指针的作用:1、表示一些复杂的数据结构 2、快速传递数据(传参结构体中和函数处理数组的时候) 3、使函数返回一个以上的值 4、能直接访问硬件(因为它里面存的是硬件上的一个地址) 5、能够方便的处理字符串 6、是理解面向对象语言中引用的基础总结;指针是c语言的灵魂 2、指针的定义:    地址:内存单元的编号(从零开始的非负整数)范围:4G【0--4G-1】,(即3...
摘要由CSDN通过智能技术生成

 

1、指针的作用:

  • 1、表示一些复杂的数据结构
  • 2、快速传递数据(传参结构体中和函数处理数组的时候)
  • 3、使函数返回一个以上的值
  • 4、能直接访问硬件(因为它里面存的是硬件上的一个地址)
  • 5、能够方便的处理字符串
  • 6、是理解面向对象语言中引用的基础

总结;指针是c语言的灵魂 


2、指针的定义:

    地址:内存单元的编号(从零开始的非负整数)范围:4G【0--4G-1】,(即32位二进制或8位16进制)
    指针:

指针与指针变量:

  •  指针就是地址,地址就是指针
  • 地址就是内存单元的编号
  • 指针变量是一个变量,什么样的变量呢?一个存放地址的变量
  •  指针与指针变量是两个不同的概念可以换一句话说(地址和地址变量)

           但是注意:通常我们或者程序员叙述时会把指针变量简称为指针,实际上含义是不同的
指针的本质:是一个操作受限的非负整数(指针不能加、乘、除只能相减(即可以相减得出两个房间号中间隔了多少内存))
指针的分类:

    3、基本类型指针

include<stdio.h>

   //指针变量就是地址变量即能存放其他变量的地址
int main(void)
{
    int* p;   //p是变量的名字(p是指针变量即p能存放整形变量的地址) int*表示变量存放的是int类型变量的地址


       /*
         1、int* p 不表示定义了一个名字叫做*p的变量
         2、int* p 应该这样理解:p是变量名,p变量的类型为 int*类型(既存放int变量地址的类型)
         3、所谓int*类型  实际就是存放int变量地址的类型
      */


   int i = 10;
   p = &i;


      /*
       1、p保存了i的地址,因此p指向i。
       2、p不是i,i也不是p,更准确的说修改p的值不会影响i的值,修改i的值也不会影响p的值,但是*p是以指针变量p中

          存储的内容为地址(即变量i的地址)的变量的值(即变量i)
       3、如果一个指针变量指向了某个普通变量,则 *指针变量    就完全等同于   普通变量
             例如:
                        如果p是个指针变量,并且p存放了普通变量i的地址,则p指向了普通变量i,于是*p 就完全等同于 i,

                   或者 说在所有出现*p的地方都可以替换成i,在所有出现i的地方都可以替换成*p,*p就是以p的

                   内容位地址的变量的值
      */


    // p = i;//error,因为类型不一致,p只能存放int类型变量的地址,不能存放int类型变量的值
   //  p=55;//error,类型不一致

}
  附录:*的含义
          1、乘法
          2、定义指针变量
                 int* p;
               //定义了一个名字叫p的指针变量,int*表示 变量p的类型(即只能存整形变量的地址)
          3、指针的运算(又叫星(*)运算或者解引用运算)
                该运算法放在定义好的指针变量的前面
                如果p是一个已经定义好的指针变量 则*p表示 以p的内容为地址的变量的值【重点理解并记死这一句话】

如何通过被调函数修改主调函数中普通变量的值?
       1、实参必须为该普通变量的地址
 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值