美文网首页C语言
C语言学习--指针认识

C语言学习--指针认识

作者: lemonTreeTop | 来源:发表于2016-10-23 19:06 被阅读88次

C语言中指针是最灵活,也最难掌握的东西,以前不知道指针究竟是什么,后来学习汇编后,慢慢理解了指针。

学习指针主要解决三个问题

  • 指针是什么
  • 指针有什么用
  • 指针怎么用

先说几个概念,首先要明白,cpu在处理数据的也要解决三个问题,数据在哪里,对数据进行怎样的操作(读或写),怎么传数据。所以在计算机里面cpu和内存之间有三种线来解决这三个问题

这里写图片描述

地址总线 :找到cpu所想操作内存单元在那里
控制总线 :对cpu数据进行操作
数据总线 :传输数据

内存除了存储整形,浮点型数据之外,内存还可以存地址。那么我们就可以知道指针是什么了,指针就是存放地址值的变量,也就是说指针也是需要占用内存的。

那使用指针有什么用?

1.数据结构实现就需要指针来实现

例如定义链表LinkList这种数据结构,数据结构关注三个方面
逻辑结构
存储结构
运算

LinkList中Link表示其存储结构,使用链式实现,List表示逻辑结构,线性,一对一的关系。既要Link也要List,那么C语言怎么表示,链表有结点构成,C语言定义节点NODE

typedef struct node
{ 
   datatype data;
   struct node *next;
} LNode;

这里写图片描述 这里写图片描述

2.指针可以让程序操作内存,灵活使用,使程序简洁,高效

指针怎么用

指针的操作

  • 赋值
  • 取值
  • 取指针地址
  • 与整数加减
  • 比较

写一个程序来认识指针

#include <stdio.h>
int main(void){
   int a;//变量名是变量a的地址
   int b;   
   int * p;  //指针是变量,其数值是地址 为什么要指定int类型的指针
   a=100;  //赋值,本质,根据a这个变量名寻址,然后把数值100,写入到已分配的内存单元
   p=&a;  // 指针赋值,&为取地址运算符,把a的值赋给p,  p就指向了a所指向的内存单元 ,   * 为取值符号
   printf("%p\n",main);  //函数名本质也是地址 
   printf("%d\n",a);
   printf("%p\n",&a);
   printf("%p\n",&b);
   printf("%p\n",p);  //p变量名 的就是 p的地址 
   printf("%p\n",&p);
   printf("%p\n",p+1);  //整数加给指针:整数都会指针所指类型的字节数相乘,然后结果加到指针的值上,减类似 
   printf("%d\n",*p);  //输出p指针所指的内存单元数据到屏幕   *p ,* 为取值符号 
   printf("%d\n",sizeof(p));
   printf("%d\n",sizeof(a));
   return 0;
}

屏幕输出

这里写图片描述

相关文章

  • C语言学习--指针认识

    C语言中指针是最灵活,也最难掌握的东西,以前不知道指针究竟是什么,后来学习汇编后,慢慢理解了指针。 学习指针主要解...

  • Android开发学习——Day6(C语言之灵魂所在&学生信息系

    学习目的 1.指针和结构体 2.实战:学生信息系统 学习过程: 指针被称为C语言的灵魂,认识并熟练运用指针是很有必...

  • C语言函数指针和指针函数

    C语言函数指针和指针函数 在学习C语言的过程中,“指针函数”和“函数指针”经常容易搞混了, 最简单的辨别方式就是看...

  • C语言05- 指针

    C语言05- 指针 13:指针 指针是C语言中的精华,也是C语言程序的重点和难点。 13.1:指针定义与使用 指针...

  • JNI开发系列①JNI概念及开发流程

    接续上个系列C语言基础及指针 引言 在学习了C语言基础之后 ,我们简单的了解了C语言编程的一些范式 , 了解了指针...

  • C语言指针学习

    人生最大的遗憾不是你错过最好的人,而是你错过了那个最想对你好的人。。。 ---- 网易云热评 一、指针概念 1、指...

  • 两道面试题所引发的C指针的思考

    C语言是一门使用比较广泛的高级编程语言,而指针则是C语言的精髓所在,可以说学习C语言不会灵活使用指针就谈不上精通C...

  • 5.23课程小结

    今天学习了c语言中的指针。指针是c语言中,非常重要的知识点。通过今天的学习。明确了指针的使用方法,初始化方法等。按...

  • 02-C语言的指针

    02-C语言的指针 目标 C语言指针释义 指针用法 指针与数组 指针与函数的参数 二级指针 函数指针 指针在C中很...

  • NDK开发--C语言指针(数组指针,函数指针)

    上一节 C语言基础部分我们了解了C语言中的指针知识,这一节我们开始深入指针的学习,重点是数组指针,函数指针。 第一...

网友评论

    本文标题:C语言学习--指针认识

    本文链接:https://www.haomeiwen.com/subject/tfekuttx.html