C语言学习笔记3
2015-12-01 19:14
323 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_17726067/article/details/50133635
指针:
为什么需要指针?
使用指针处理数组中存储的数据,执行速度要比使用 下标 快很多。
指针可以做到更改函数调用处之前的局部变量
指针:
一个变量的地址为该变量的“指针”,十个常量
指针变量:
指针变量是一个变量,用于存储地址的值
指针变量的声明:
数据类型 *指针变量名;
int i = 10;
int *p1; //可以将int *看做是一个整体,然后p1中需要存储的是地址类型的数据
p1 = &i; //&是取址运算符 等价于 int *pi = &i;
* 号为 取址运算符
1.表达式中,*号两边都有变大时的话,*号是四则运算的乘法运算
2.在声明语句中,*号表明后面的变量为一个指针形式的变量
3.*号如果不在声明语句中,而只是在右边的表达式的话,表明取*号右边变量中所存地址对应内存中的数据(取值)
*p3 - &i;
等价于 i = &i;
printf("%d\n");打印结果是十进制的
printf("%p\n");打印结果是十六进制的 ,专门用于打印内存地址值
int i2 = 10;
int *p5;
int *p6;
p5 = &i2;
&*p5 //*p5等于i2 //&*p5 等于 &i2
*&i2 //实际上就是 i2的值
(*p5)++;
先找出p5所存储地址指向的存储单元的值,把值进行自加,p5的地址不变
*p5++;
++ 与 * 同一优先级,结合方向是从右向左,所以先找出p5所存储地址的值,然后该值加一,那么现在p5就不在指向变量i2了
在C语言中,地址传递也称为引用传递
相关文章推荐
- C语言学习笔记:数组
- C语言学习笔记8---预处理
- c语言学习笔记之顺序,选择,循环结构
- C语言学习笔记 (010) - 编写strcpy函数
- C语言学习笔记--动态库和静态库的使用
- 【学习笔记】【C语言】流程控制
- c语言学习笔记二十一
- iOS开发学习笔记 2-8 C语言部分 联合 枚举 结构体
- 【C语言】学习笔记8——结构struct
- C语言学习笔记 (001) - 常量指针与指针常量的区别(转帖)
- 【学习笔记】【C语言】结构体和函数
- C语言学习笔记(15指针)
- c语言学习笔记十六
- 【学习笔记】【C语言】标识符
- c语言学习笔记18之函数2
- 十进制与字符串的转换,正向和逆向互转-C语言学习笔记2
- 【学习笔记】【C语言】循环结构-do while
- 学习笔记6-C语言内存管理+构造类型
- 数组和指针————C语言学习笔记1
- C语言学习笔记(二):define和typedef以及printf和scanf族函数