黑马程序员----c基础笔记----指针
来源:互联网 发布:linux卸载光盘 编辑:程序博客网 时间:2024/06/01 08:55
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------
1、地址概念的理解:
计算机硬件系统的内部存储器中,拥有大量的存储单元(容量为1字节)。为了方便管理,必须为每个存储单元编号,这个编号就是存储单元的“地址”。每个存储都有一个唯一的地址。
内存地址———内存单元的编号
在地址多标示的存储单元中存放数据。
注意: 内存单元的地址与内存单元中的数据是两个完全不同的概念。
变量地址———系统分配给变量内存单元的起始地址
2、指针
内存单元的编号也叫地址。既然根据内存单元的编号或地址找到所需的内存单元,所以通常也把这个地址称为指针。
使用指针的好处
1)为函数提供修改调用变量的灵活手段
2)让函数有多个返回值
3)可以改善某些子程序的效率
在数据传递时,如果数据块较大(比如说数据缓冲区或者较大的结构),这时就可以使用指针传递地址 而不是实际数据,既提高传输速度,又节省大量内存。
4)为动态数据结构(如二叉树、链表)提供支持
变量的存储方式:
直接存储
间接存储(通过指针操作间接完成)
3、指针变量
1)指针变量的概念
在c语言中,允许用一个变量来存放指针,这种变量称为指针变量。因此,一个指针变量的值就是某个内存单元的地址或称为某个内存单元的指针
2)指针变量的定义
一般形式:
类型说明符 *变量名;
其中,*表示这是一个指针变量,变量名即为定义的指针变量名,类型说明符表示指针变量所指向的变量的数据类型。
代码及理解:
#include <stdio.h>int main(int argc, const char * argv[]) { int *p;//定义了一个指针变量,变量名是p //int表示 ,p只能存放一个int类型的变量的地址 char *p1; //定义了一个指针变量,变量名是p1 //p1只能存放一个char类型数变量的地址 return 0;}4、二级指针
二级指针的介绍:
如果一个指针变量存放的又是另一个指针变量的地址,则称这个指针变量为指向指针的指针变量
代码及理解:
#include <stdio.h>int main(int argc, const char * argv[]) { //定义一个指针变量 int *p = &a; printf("&a = %p\n",&a); printf("p =%p\n",p); printf("-----------------\n"); //定义一个二级指针 //**的个数等于等级 int **p1 = &p; printf("&p =%p\n",&p); printf("p1 =%p\n",p1); printf("--------------\n"); printf("*p =%d\n",*p); //p的值, a的地址 printf("*p1 =%p\n",*p1); return 0;}
- 黑马程序员----c基础笔记----指针
- 黑马程序员--C基础--指针
- 黑马程序员-C语言基础九:指针
- 黑马程序员--iOS--C基础(指针)
- 黑马程序员---c语言基础---数组、指针
- 黑马程序员-----------C语言基础-----------指针(一)
- 黑马程序员-----------C语言基础-----------指针(二)
- 【黑马程序员】C语言基础-指针
- 黑马程序员学习笔记-C指针小结
- 黑马程序员-iOS基础-C语言基础(五)指针
- 黑马程序员-C基础运算-学习笔记
- 黑马程序员----c基础笔记----函数部分
- 黑马程序员----c基础笔记----数组部分
- 黑马程序员 _4 C语言基础 数组,指针,字符串
- 黑马程序员_iOS开发C语言基础之指针
- 黑马程序员——C语言基础——指针
- 黑马程序员——C语言基础---数组、指针
- 黑马程序员——C语言基础—-----指针
- swift cell的高度是动态的 三个文件:控制器 cell Frame类
- 浏览,确认提交里获取文件名、文件路径、上传图片
- DP 最长公共子序列并标记输出
- UIday0803:UIDatePicker的属性和用法
- 学习zsh
- 黑马程序员----c基础笔记----指针
- 人工智能学习(链接)
- Ngin的配置文件nginx.conf完整配置说明(包括fastcgi和负载均衡设置)
- 核主成分分析KPCA+C代码
- 深入java--JRE与JDK的区别
- 假设检验初步
- 弗洛伊德
- Ruby on rails初体验(一)
- 外联接、自联接与联合