C语言基础语法第五篇

1.什么是指针

计算机中所有的数据都必须存放在内存中,不同类型的数据占用的字节数不一样,

比如说  int 占4个字节,char 占 1个字节。为了能正确地访问到这些数据,必须为每个字节都编上号码,每个字节的编号是唯一的,根据编号可以准确的找到某个字节。将内存中每个字节的编号称为地址 或 指针。地址  从0开始依次增加,对于32位,程序能够使用的内存位4G

最小的地址为:0x0000  0000,最大的地址为 0xFFFF FFFF

C/C++中 *号运算符的意义;

 

2.定义指针变量

定义指针变量与定义普通变量非常类似,不过要在变量名前加 * 

格式为:datatype *name ;或者datatype *name=&value;

*表示一个指针变量,datatype 表示该指针变量所指向的数据的类型

在指针定义中 *号和变量名结合

总结:指针就是内存的地址,指针变量,就是保存内存地址的变量

指针大小:32位,4字节

                  64位,8字节

3.使用指针变量 首先要明白 指针变量自身的值(存储的地址),再明确指针变量的所指的实体(解引用)

4.定义指针时,类型对指针变量起到了两个作用。

(1)解析存储单元的大小,即能访问几个字节

 

 

(2) 指针+1的能力

指针加+1会跳过指针类型能够访问的字节数 ,指针的类型不同,加1的能力不一样

5.指针的应用

(1)值传递

 (2)指针传递

 6.指针和数组的关系

数组名被看作该数组的第一个元素在内存中的首地址(仅在sizeof操作中例外,该操作给出数组所占的内存大小)。数组名在表达式中被自动转换为一个指向数组第一个元素的指针常量;

 数组名是指针,使用非常方便,但却容易造成越界,编译器不会对数组的边界检测。

arr是数组第一个元素的地址,*arr就是数组的第一个元素arr[0] ,而arr+1是数组第二个元素的地址,

*(arr+1)就是第二个元素arr[1]本身。指针加1,则地址移动一个数组元素所占的字节数,因为arr

属于 int *类型的指针,数组名arr是指针但不是指针变量,他是地址常量,不占存储空间。

C语言的下标运算符[ ]是以指针为操作数的,arr[i]被编译系统解释为 *(arr+i),即表示为arr 所指元素向后的第i个元素。无论以下标方式或指针存取数组元素时,系统都是转换为指针方法实现的。

逻辑上有两种,但物理上只有一种。

总结:

(1).指针变量与整型量的加减表示移动指针,以指向当前目标前面或后面的若干个位置。

(2).运算结果并不表明一定有一个指针所规定的数据的变量,即使是对数组操作。

指针的算数运算很容易超出数组的边界,需要小心越界的问题。

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录 第一章 C 语言概述 1 第一节 C 语言的特点 1 第二节 C 语言的程序结构 2 第三节 C 语言的关键字和标识符 3 第二章 C 语言的基本语法 5 第一节 数据类型 5 2 1 1 整型int 5 2 1 2 浮点型float 6 2 1 3 字符型char 6 2 1 4 指针型 7 2 1 5 无值型void 8 2 1 7 各类数值型数据间的混合运算 8 第二节 常量与变量 8 2 2 1 常量和变量 8 2 2 2 变量赋初值 9 第三节 运算符和表达式 9 2 3 1 算术运算符和算术表达式 9 2 3 2 赋值运算符和赋值表达式 10 2 3 3 关系运算符和关系表达式 10 2 3 4 逻辑运算符和逻辑表达式 11 2 3 5 位运算符 11 2 3 6 逗号运算符 12 2 3 6 条件运算符和条件表达式 12 2 3 7 强制类型转换运算符 12 2 3 8 sizeof 运算符 13 2 2 9 运算符的优先级和结合方向 13 第四节 表达式语句 14 2 4 1 基本表达式语句 14 2 4 2 复合语句 14 第五节 判断选取控制语句 15 2 5 1 条件语句if 语句 15 2 5 2 开关语句switch 语句 16 第六节 循环语句 17 2 6 1 while 语句 17 2 6 2 do while 语句 18 2 6 3 for 语句 18 2 6 4 goto 语句 19 2 6 5 continue 语句 20 第七节 返回语句 20 第三章 函数 21 第一节 函数的定义 21 3 1 1 函数的分类 21 C 语言手册基础篇 3 1 2 无参数函数的定义方法 21 3 1 3 有参数函数的定义方法 21 3 1 4 空函数的定义方法 22 3 1 5 函数的返回值 22 第二节 函数的调用 22 3 2 1 函数的调用形式 22 3 2 2 对被调用函数的说明 23 3 2 3 函数的参数和传递方式 23 3 2 4 函数的嵌套和递归调用 24 第三节 中断服务函数 24 第四节 变量的种类和存储 25 3 4 1 局部变量与全局变量 25 3 4 2 变量的存储种类 25 第四章 数组与指针 28 第一节 数组的定义和引用 28 第二节 字符数组 28 第三节 数组的初始化 29 第四节 数组作为函数的参数 29 第五节 指针的概念 30 4 5 1 指针变量的基本概念 30 4 5 2 指针变量的定义 30 4 5 3 指针变量的引用 31 4 5 4 指针的地址运算 31 4 5 5 指针变量作为函数的参数 32 4 5 6 用指针引用数组元素 32 第六节 函数型指针和指针函数 33 4 6 1 函数型指针 33 4 6 2 指针函数 34 第七节 指针数组和指针型指针 34 4 7 1 指针数组 34 4 7 2 指针型指针 35 第五章 结构和联合 37 第一节 结构的概念 37 5 1 1 结构变量的定义 37 5 1 2 结构变量的引用 38 5 1 3 结构变量的初值 39 5 1 4 结构数组 39 第二节 结构型指针 39 5 2 1 结构型指针的概念 39 5 2 2 使用结构型指针访问结构成员 40 第三节 结构与函数 40 第四节 联合 40 5 4 1 联合的定义 40 5 4 2 联合变量的引用 41 C 语言手册基础篇 第五节 位段 41 5 5 1 位段的概念 41 5 5 2 有关位段的说明 42 附录 44 附录1 C中的关键字 44 附录2 运算符的优先级和结合性 45">目录 第一章 C 语言概述 1 第一节 C 语言的特点 1 第二节 C 语言的程序结构 [更多]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值