目录

  • 一、学习的知识点
    • 指针
    • 指针高级
      • 数组指针
      • 结构体指针
  • 二、上课没有听懂或者没有理解的地方
  • 三、当天学习的收获
  • 四、作业的思路、不会的地方
  • 五、其他需要反馈的问题
  • 六、心得体会

一、学习的知识点

指针

  1. 定义指针变量记得初始化,或者初始化为NULL:void *p=NULL;
  2. 指针变量存放的是地址,可以比较大小,但必须是同类型。
  3. 数组作为函数形参的三种写法:p【】,p【20】,*p
  4. NULL//值为0,无类型的指针,stdio.h
  5. char *temp=“hello”,"hello"是常量,存储在常量区。temp指针变量指向的是一个字符串常量,此时不能通过指针变量修改常量的内容

char name[20]="admin";
char pwd[20];
pwd=name; //错误
char *pstr=name; //指针指向字符串变量,可以通过下标或者地址偏移方式改变值
char *temp="hello"; //temp指针指向 字符串常量

指针高级

数组指针

{    int num[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};int i=0,j=0;int (*p)[4]=num; //指向二维数组的指针---行指针(数组指针),每行4个元素,不可省int *p[4]; //指针数组 指针类型的数组,数组里面保存的是int类型的指针,占用4*4-16个字节空间/*行指针-本质是指针,使用在二维数组作为函数参数的时候,行指针+1,偏移1行指针数组-本质是数组,通常可以应用在二维字符数组上,保存多个字符串*/char *stu[20]={"lili","rose","lucy"}; //指针数组,保存三个字符串在常量区对应的地址puts(stu[1]); //访问到rosep++; //偏移行//访问二维数组的元素printf("%d\n",num[1][1]); //下标法for(i=0;i<3;i++){for(j=0;j<4,j++){printf("%d\t",num[i][j]); //下标法printf("%d\t",*(num[i]+j)); //每一行的首地址偏移,取内容printf("%d\t",*(*(num+i)+j)); //printf("%d\t",*(num+i)[j]); //*(num+i)[j]->*(p)[j]printf("%d\t",*(&num[0][0]+4*i+j)); //num &num[0][0]+4*i+j}printf("\n");}printArry(num,3); //函数调用
}
//int p[3][4]   int p[][4]   int (*p)[4]  二维数组形参方式
void printArry(int num[][4],int row)
{int i=0,j=0;for(i=0;i<row;i++){for(j=0;j<4,j++){//printf("%d\t",num[i][j]); //下标法//printf("%d\t",*(num[i]+j)); //每一行的首地址偏移,取内容//printf("%d\t",*(*(num+i)+j)); //printf("%d\t",*(num+i)[j]); //*(num+i)[j]->*(p)[j]//printf("%d\t",*(&num[0][0]+4*i+j)); //num &num[0][0]+4*i+j}printf("\n");}
}

结构体指针

保存的是结构体变量对应的地址

typedef struct staff
{}STAFF_T;STAFF_T user={1001,"admin","123456"};
STAFF_T *puser=NULL;puser=&user;//结构体指针变量访问数据成员的格式:指针变量名+->变量名
printf("%s\n",puser->name);

二、上课没有听懂或者没有理解的地方

三、当天学习的收获

学习了访问二维数组元素的几种方法

四、作业的思路、不会的地方

使用结构体指针作为形参

五、其他需要反馈的问题

六、心得体会

数组指针和指针数组比较难理解消化,多学多练。

200813_C指针相关推荐

  1. MIT 6.s081学习笔记

    MIT 6.s081学习笔记 introduction 计算机组织结构: 最底部是一些硬件资源,包括了CPU,内存,磁盘,网卡 最上层会运行各种应用程序,比如vim,shell等,这些就是正在运行的所 ...

  2. Go 知识点(19)— Go 语言中的野指针

    野指针是一种指向内存位置是不可知的指针,一般是由于指针变量在声明时没有初始化所导致的.在 Go语言中,布尔类型的零值为 false,数值类型的零值为 0,字符串类型的零值为 "", ...

  3. C++ 笔记(27)— 指针变量、数组和指针、指针数组、数组指针、指针常量与常量指针

    1. 什么是指针变量? 指针变量是专门有一个变量来存放指针. int main(int argc, char *argv[]) {int a = 10;int *p = &a; //通过取地址 ...

  4. Go 学习笔记(71)— Go 接口 interface (接口定义、接口实现、接口调用、值接收者、指针接收者)

    1. 接口的定义 接口是和调用方的一种约定,它是一个高度抽象的类型,不用和具体的实现细节绑定在一起.接口要做的是定义好约定,告诉调用方自己可以做什么,但不用知道它的内部实现,这和我们见到的具体的类型如 ...

  5. Go 学习笔记(70)— Go 变量声明、变量初始化、值类型变量赋值、指针类型变量赋值

    1. 变量声明 要单纯声明一个变量,可以通过 var 关键字,如下所示: var s string 该示例只是声明了一个变量 s,类型为 string,并没有对它进行初始化,所以它的值为 string ...

  6. c/c++中的函数指针和指针函数

    定义 1.指针函数,本质是函数,返回值为指针,形如,int *pfun(int, int),由于"*"的优先级低于"()"的优先级,所以等同于int *(pfu ...

  7. 关于C语言中的数组指针、指针数组以及二级指针

    概念解释 数组指针:首先它是一个指针,它指向一个数组,即指向数组的指针:在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道.数组指针指向的是数组中的一个具体元素,而不是整个数组,所 ...

  8. 【数据结构】链表中的 指针,地址

    数据结构中跳过集合,直接开始线性结构 线性结构中单链表的操作涉及到给一个变量赋值地址,所以涉及到了指针 通过指针里的地址很方便找到节点 但指针这里绕了我很长时间,不论学了多少遍也不敢说把指针学会了 地 ...

  9. Qt实现 指针式时钟+动态时钟 (详细注释)

    先上效果图: 点击运行后首先是一个指针式时钟窗口,点击Digital Clock->可以跳转到数字时钟窗口,再点击Move Clock->可以还原为指针式时钟窗口 关于整个程序的讲解都在代 ...

最新文章

  1. 儿童吹泡泡水简单配方_自制泡泡水最简单配方的做法教程
  2. 虚函数和作用域(C++ primer 第五版)P550
  3. 业务需求、客户需求与功能需求
  4. springboot 整合mybatis_SpringBoot整合Mybatis、MybatisPuls
  5. Eclipse-class文件中文乱码
  6. 时域上的乘积等于频域上的卷积_时频域分析的一些常用概念补充(线性时不变系统、卷积、冲激响应、窗函数等)...
  7. 字符串,那些你不知道的事 1
  8. 07.计算Nova→2.nova组件详解→2.nova-scheduler
  9. 线性代数矩阵思维导图_斌叔2021考研数学公式:几种特殊形式的矩阵
  10. csgo准星设置代码_csgo准星代码怎么输入
  11. Flash Builder4.7安装
  12. 求职、跳槽中英文简历模板下载集合
  13. 高通平台msm8953 display子系统学习
  14. linux 下的无线网络配置,详解在LINUX环境下怎样设置无线网络配置
  15. 概率论复习笔记【3条件概率】
  16. ever 逾期_4ever的完整形式是什么?
  17. latex格式的英文文章中引用的中文参考文献在BIBTEX中的格式是如何的
  18. 小程序的退出登陆功能实现代码
  19. unity报错Deterministic compilation failed. You can disable Deterministic builds in Player Settings
  20. 兔子繁殖问题,兔子有寿命限制

热门文章

  1. sitecore系列教程之目标功能有什么新意?
  2. IIS服务中五种身份验证的灵活运用-转
  3. 2.27linux和windows互传文件
  4. Python数据可视化1.2 数据转换
  5. TID大会学习心得之敏捷软件架构-微服务
  6. CITRIX 5.0,XML服务异常引出事件ID 31003和30016错误
  7. java不输出数字_为什么我的代码不输出(仅)数字?
  8. Redis分布式锁的实现原理
  9. 微服务通信带来的问题
  10. 锁的释放流程-ReentrantLock.tryRelease