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

C语言指针重点

时间:2022-11-13 22:44:59浏览次数:50  
标签:数组 int 万能 C语言 二维 一维 重点 指针

指针

指针与一维数组

万能公式

  • p[i] = *(p+i) = (i+p) = i[p]
    &p[i] == &(
    (p+i))== p+i

指针与二维数组

二维数组万能公式: ((p+i)+j)=a[i][j]

  • 对于一维数组而言,array + i 是array[i]的地址
  • 二维数组--->本质上就是n行个的一维数组--->每个有m列的一维数组
  • 行指针:a+i = &a[i] 即指向一行的指针
  • 列指针:a[i] = *(a+i) = &a[i][0] 即指向一列的指针
    上述行指针与列指针的数值相同,但意义摆在那了,并不同。

下面举一个例子:

int a[3][4];
a+1 则是行指针
*a则是列指针 参考一维数组与指针万能公式

a[1][0] 就是一个y[0]
a[1][1] 就是一个y[1] <---y+1
这个y就是一个普通的数组了
二维数组中
a[1]+1 ==>跨一行 行指针
*(a+1)+1 ==>跨一列 列指针
二维数组做形参:a[][2] 前一个可省,后一个不可省

行指针

定义形式:数据类型(指针名)[一维数组维数]
eg.int (
p)[4];
p是行指针, *p+j则是列指针

int *p[4];
数组中每个元素都是个指针;

传递任意维数的数组本质上就是传递指向数组中的第一个元素的指针变量!

标签:数组,int,万能,C语言,二维,一维,重点,指针
From: https://www.cnblogs.com/Tan-code/p/16887556.html

相关文章

  • C语言数组越界和内存分配
    事情经过11月3日晚,今天遇到了一个神奇的现象,一个大小为10的数组可以容纳200个数据,直接震惊我了!今天发11月2日的参考代码,有一个同学给我看他的代码,大概是这样的intmain(......
  • <六>指向类成员的指针
    指向类成员(成员变量和成员方法)的指针1:定义一个指针指向类的普通成员变量示例代码1点击查看代码classTest2{public:intma;staticintmb;voidf1()......
  • java——继承与多态——重点部分总结**********************************************
    Java类名必须是由一个或多个有意义的单词连缀而成的,每个单词首字母大写,其他字母全部小写,单词与单词之间不要使用任何分  成员变量名:成员变量名只要是一个合法的标识符......
  • c语言第二例题
    题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间......
  • C语言 #define 和 typedef 区别
    在C语言编程中,typedef和 #define是最常用语句,可能很多工作过几年的工程师都没有去深究过它们的一些用法和区别。typedef的用法在C/C++语言中,typedef常用来定义一个标识......
  • 面试常问的16个C语言问题
    1.用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#defineSEC_YEAR(365*24*60*60)UL考察点:1) #define 语法的基本知识(例如:不能以分号结束,......
  • C语言中的volatile
    volatile的定义:Indicatesthatavariablecanbechangedbyabackgroundroutine.Keywordvolatileisanextremeoppositeofconst.It indicatesthatavariable......
  • c语言数据统计
    #include<stdio.h>intmain(){intcount=0;intn,k,i;scanf("%d%d",&n,&k);for(i=n;i<=k;i++){intj=i;while(j>0)......
  • C语言学习--练习--合并两个字符串
    将两个字符串合并追加在一起,类似于python的str1+str2 #include<stdio.h>#include<string.h>#include<stdlib.h>//字符串追加,将两个字符串结合在一起intmain(......
  • 21. 合并两个有序链表 ----- 递归调用、链表指针
    将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。  示例1:输入:l1=[1,2,4],l2=[1,3,4]输出:[1,1,2,3,4,4]示例......