梓益C语言学习笔记之指针

一、32位平台下,地址是32位,所以指针变量占32位,共4个字节

二、内存单元的地址即为指针,存放指针的变量称为指针变量,故:“指针”是指地址,是常量,“指针变量”是取值为地址的变量。

char*型指针一次取一个字节,int*型指针一次取4个字节,double*取两次4字节

数组名是指针,代表数组首元素的地址,但数组名是常量,不能修改。

三、通过指针变量可以取得数组或函数的首地址

int*p,表示p是一个指针变量,它的值是某个整型变量的地址

指针数组:int *a[10];   这是个指针数组,数组a中有10个整型的指针变量    a[0]~a[9]

数组指针:int (*a)[10];   数组指针变量,它是个指针变量。它占4个字节,存地址编号。它指向一个数组,它加1的话,指向下个数组。

函数指针:int(*p)(int,int);//定义了一个函数指针变量p,p指向的函数,必须有一个整型的返回值,有两个整型参数。

如: int max(int x,int y)

{

}

可以用这个p存放这类函数的地址。

p=max;

调用:

int  num;

num=(*p)(3,5);

四、指针变量赋值:

1,初始化赋值int a;  int*p=&a;

2,赋值语句int  a;  int *p=NULL;  p=&a;

为安全起见,指针变量未赋值不能使用,可先赋NULL

五、内存区域:

操作系统会将物理内存映射为虚拟内存,增加类似如下的分区

1,栈区stack:函数参数,返回值,局部变量(自动赋随机值)

2,堆区heap:动态内存分配

3,全局未初始化区bss:全局未初始化,静态未初始化数据

4,全局初始化区data:全局初始化,静态初始化数据

5,文字常量区text:文字,常量

6,代码区:可执行文件的二进制码

例:

char  str[100]="hello";//hello存在字符串里,在栈区,str里的内容可以修改

char  *p="hello";//hello 存在文字常量区,属于常量,不能修改,不能通过*p修改原字符串的值,P存在栈区,可以改变P的值使其指向别的字符串。

char  *str=(char  *)malloc(10*sizeof(char));//堆区,内容可修改

六、数组指针:int a[5]={1,2,3,4,5};   a:数组名,指向首元素地址a==&a[0];    a+1:a[1]的地址;   &a:取整个数组地址

七、数组部分初始化后,其余值自动初始化为0,例:int  a[5]={0};     char  str[100]=" ";

转载于:https://blog.51cto.com/13603157/2082830

梓益C语言学习笔记之指针相关推荐

  1. 梓益C语言学习笔记之链表&动态内存&文件

    梓益C语言学习笔记之链表&动态内存&文件 一.定义: 链表是一种物理存储上非连续,通过指针链接次序,实现的一种线性存储结构. 二.特点: 链表由一系列节点(链表中每一个元素称为节点)组 ...

  2. C语言学习笔记--数组指针和指针数组

    C 语言中的数组有自己特定的类型,数组的类型由元素类型和数组大小共同决定.(如 int array[5]类型为 int[5]) 1.定义数组类型 C 语言中通过 typedef 为数组类型重命名:ty ...

  3. C语言学习笔记(指针篇)

    1.1指针是什么 关于地址: 在程序中定义一个变量系统就会分配内存单元,根据变量类型去分配一定空间的长度.每一个字节都有一个编号,这就是"地址". 通过地址能找到变量单元,所以我们 ...

  4. C语言学习笔记09-数组、字符数组、字符串数组、二维数组(单字符输入输出putchar、getchar,字符串输入输出的scanf、gets、puts)

    C语言数组   数组作用:可以用来保存很多记录(可以看成一种大容器).一些简单游戏也基本由数组实现,如游戏地图(二维数组)等等.   一个数组 划分 多个单元(下标区分) -存放-> 多个同类元 ...

  5. c语言学习笔记【结构体02】结构体指针变量与结构体变量的函数参数,C语言学习笔记结构体02结构体指针变量与结构体变量的函数参数.docx...

    C 语言学习笔记[结构体02]结构体指针变量与结构体变量 的函数参数 C 语言学习笔记之结构体指针变量一提指针,那可 是 C 语言的核心了,有多少学子曾拜倒在指针的脚下.单纯的说指针,其实并不难,但是 ...

  6. C语言学习笔记10-指针(动态内存分配malloc/calloc、realloc、释放free,可变数组实现;Tips:返回指针的函数使用本地变量有风险!;最后:函数指针)

    C语言:指针 1. 指针:保存地址的变量 *p (pointer) ,这种变量的值是内存的地址.   取地址符& 只用于获取变量(有地址的东西)的地址:scanf函数-取地址符   地址的大小 ...

  7. 6.方法(go语言学习笔记)

    6.方法(go语言学习笔记) 目录 定义 匿名字段 方法集 表达式 1. 定义 方法是与对象实例绑定的特殊函数. 方法是面向对象编程的基本概念,用于维护和展示对象的自身状态.对象是内敛的,每个实例对象 ...

  8. c语言中void arrout,c语言学习笔记(数组、函数

    <c语言学习笔记(数组.函数>由会员分享,可在线阅读,更多相关<c语言学习笔记(数组.函数(53页珍藏版)>请在人人文库网上搜索. 1.数组2010-3-29 22:40一维数 ...

  9. c语言float二进制输出代码_C语言学习笔记——学前知识概述

    将我大一学习C语言时做的笔记拿来与大家分享,内容比较浅显,比较适合初学者,如有错误还请见谅,提出改正,谢谢! 前言:此C语言笔记是本人在自学时记录的一些重点或初学者常犯的错误,希望我的这本笔记能够对大 ...

最新文章

  1. h5大转盘抽奖源码后台_微信H5互动营销应该要如何做?
  2. 刻意练习:Python基础 -- Task08. 异常处理
  3. 推荐一个提供干货的java公众号
  4. 【实战】感恩教师节小程序制作
  5. ie里的button标签的一个bug
  6. CoreJava学习3——​基本类型的包装类
  7. java web 多语言_基于 Selenium WebDriver 实现多语言环境下自动化截图
  8. linux两台服务器 同一个地址_【网工玩Linux】搭建开源多运营商(ISP)链路负载均衡器...
  9. 使用dos下的命令行,也可以完成wifi连接。
  10. 腾达A6无线路由器的几种连接模式
  11. 设计模式:单例模式7种写法
  12. 第四次打卡 建模调参
  13. 【Netty】Netty+springboot实现IM即时通讯服务端
  14. 读美妆论文AN AUTOMATIC FRAMEWORK FOR EXAMPLE-BASED VIRTUAL MAKEUP
  15. java word替换图片_Java 替换word文档文字并指定位置插入图片
  16. java 做日历_java编程实现日历
  17. KCon 2017兵器谱招募 亮出你的安全神兵
  18. 2022国产PLM软件排行榜
  19. 走走北京中轴(三):前门小吃的功课
  20. python中imread什么意思_Python 中各种imread函数的区别与联系

热门文章

  1. Shell脚本对比两个文本文件找出不同行的2个方法分享
  2. hdu 2871 Memory Control(线段树)
  3. UVA 10254 The Priest Mathematician
  4. PHP 设计模式之数据对象映射模式
  5. ⼤海捞针 —— Scan
  6. 面试题56: 数组中数字出现的次数
  7. ACM-ICPC 2018 徐州赛区网络预赛 Morgana Net
  8. 组合数 com(n,r)
  9. XCTF-MISC-新手区-如来十三掌
  10. 计算机原理课程设计陈宏,东北大学计算机组成基础原理课程教学设计.doc