C语言学习——指针

 1、指针==地址   (指针变量,存放地址的变量)

访问变量的两种方式(1、变量名访问;2、通过地址间接访问  &是取地址运算符  *是将地址中的值读出运算符) 

 2、两个变量的交换

 3、指针指向固定区域  (单片机开发,armbootload代码编写)

练习

输入三个数,不管怎么输入,输出的时候都是大到小的顺序输出,用函数封装实现

4、定义指针变量指向数组

指向数组首元素地址

数组名既是首地址

指针增量和数组的关系

指针和数组名的见怪不怪(面试)

 A.指针当作数组名,下标法访问

B.数组名拿来加

数组名和指针的区别(指针可以*p++,数组名不可以*arr++,因为p是指针变量,而数组名对应的是一个指针常量)

使用sizeof

练习

  1. 函数封装数组初始化,遍历

  1. 将数组中的n个元素按逆序存放

 5、二维数组(地址)

6、数组指针(int *p)[4]

练习:输出二维数组任意行列的数

 7、函数指针    (函数名就是地址)

定义:

定义函数指针变量:int(*p)(int a,int b)

练习:有两个整数a和b,用户输入1,程序给出最大值,

      输入2给出最小值,输入3,求两者和

 8、指针数组     int* p[4]   数组中的元素都是指针

练习:   有两个整数a和b,输出最大值,最小值,两数和 

 9、指针函数    函数返回值是一个指针

定义:

练习:a个学生,每个学生有b门课,要求用户输入学生学生序号,

      能输出该学生的全部成绩

练习:a个学生,每个学生有b门课,找出其有不及格的课程的学生及其学号

 10、二级指针

11、二级指针和二维数组关联

 12、定义各种变量

a、一个整型    int a;

b、一个指向整数的指针    int *p;

c、一个指向指针的指针,它指向的指针指向一个整形数   int **p;

d、一个有10个整数的数组         int a[10];

e、一个有10个指针的数组,每个指针指向一个整形数   int *p[10]

f、一个指向有10个整形数的数组指针        int (*p)[10]

g、一个指向指针的指针,被指向的指针指向一个有10个整形数的数组       int (**p)[10]

h、一个指向数组的指针,该数组有10个整形指针  int* (*p)[10]

i、一个指向函数的指针,该函数有一个整形参数并返回一个整形数

         int (*pFun)(int )

j、一个有10个指针的数组,每个指针指向一个函数,该函数有一个整形参数并返回一个整形数      int (*p[10])(int )

k、一个函数的指针,指向的函数的类型是有两个整形参数并且返回一个函数指针的函数,返回的函数指针指向有一个整形参数且返回整形数的函数     int (*(*pFun)(int ,int ))(int )

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值