c语言指针一览第一部分(新手向)

c语言指针一览第一部分(新手向)

um…最近学到了指针,又恰逢寒假集训队选拔,把指针复习一下,
函数指针最后在说吧rua。
(编者注:以下的p是指明了指向谁的)

一.一维数组与指针:
首先要知道a[1]中a即数组名就是首地址a[0]。
基本形式三种等价表示方法
1 .int*p=&a[1] ; low
2.int * p ;int a[1] ; p=a ; medium
3.int * p=a; (实际上是int * (p=a)) pro
4.p+i等价于a+i即是从零开始加i个元素所以是第i+1个元素的指针。
5.由4推测出 * (p+i)和p[i]和a[i]等价。
6.由以上的内容可知访问一个一维数组的值a[i]可以有两种方法1.直接a[i].2.访问 * (p+i)
7.指针变量可以改变p++(放在循环里),a++是非法的(a[0]++是个啥,,xd)
8.在来讲一下各种++,–的问题
一般情况下分为两类 * (p++)=a[i++] * p(–)=a[i–]他们是从a[0]开始的,另一类是++p,–p他们是从a[1]开始的
二.二维数组与指针
1.对于一个二维数组而言a[i][j]而言,a[i]就是首地址,即a[0][0],a+i指的是第i行的首地址,这里可以给出解释二维数组可以看成x行含有y个数的一维数组即a[1]是由a[1][0],a[1][2]…到最后一个数。
2.有了行的概念,我们可以很容易理解列的地址是a[i]+j这会事,即某一行一维数组上的某数是由其与首地址的偏移量决定的。所以可以利用列的地址指向一个二维数组中的实际值
3.下列有一串我举得很重要的知识点
1.a[i]+j= * (a+i)+j 2.1中的式子指的是a[i][j]的地址值,所以可推出 * ( * (a+i)+j)就是a[i][j]的值
(犯二:a[i]是第二行首地址的值,(a+i)是她的地址)(删除)
2.二维数组地址索引:a.表示行地址:a,(a+i),&a[i] b.表示列地址:a[i], * (a+i)+j, * (a+i),a[i]+j, 表示值的地址 * ( a+i)+j ,指向值的指针 * ( * (a+i)+j)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值