指针的基本知识

引入:未能解决的问题:两数互换

变量的内存地址:内存中的每个字节都有唯一的编号(地址)

例scanf("%d,&a)意思是把输入的值存放在变量a的地址上去  {%p打印地址 &a}

学会指针之前先整明白地址

指针变量的定义和初始化:指针应先定义再使用

指针变量-具有指针类型的变量      变量的指针-变量的地址

int a=0;

int *pa;定义了指针变量pa,但pa并未指向a--初始化(pa本身有个地址,如果指向a存的就是a的地址,如果没有指向,说明pa里面是空的)

int *pa;

pa=&a;(*pa==a)

指针可以解决 指针传参的时候可以传多个,而函数返回值只有一个,可以在函数里面对主函数多个变量直接进行修改

指针和一维数组的关系:   p=a或p=&a[0]

指针可以当数组名使用  p=a a[ ]   p[0],p[1],p[2]   数组名就是指针 例a[i]=*(a+i)=pa[i]=*(pa+i)

指针和二维数组的关系:

a[0],a[1]代表二维数组的首地址,*(a+i)   *a(a+i)+j   *(*(a+i)+j)

重要  二维数组的行指针:int a[2][3].....定义:int(*p)[3]  使用:p=a   输出:(*(p+i)+j)或p[i][j]..指针名当数组名  注意定义的二维数组的大小列很重要,定义多少用多少

二维数组的列指针:   int a[2][3].....定义:int *p  使用:p=*a   输出:p[i*n+j]或*(*p+i*n+j).....二维当一维 

指针数组:定义:元素均为指针类型数据的数组。char [5][20] char *ptr[5]..二维的字符串数组指针数组更多的用来指向一个字符串数组(每一个指针指向一个串)使用p[i]=a[i]     char ch[20]是一个一维数组...char *p就是一个字符串指针,可以只想一个单字符,还可以指向一个一维的字符串数组

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能边缘探索记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值