深入理解C指针学习笔记(二)

本文详细介绍了C语言中的指针,包括指针的声明、地址操作符、内存分配、void指针的使用,以及全局和静态指针的特点。通过学习,你可以理解指针如何提升代码效率,支持动态内存,并了解指针与虚拟内存的关系。
摘要由CSDN通过智能技术生成

1、 指针和内存

1.1 为什么要精通指针

指针的几种用途:

  • 写出高效快速的代码(指针接近硬件,可以更好的操控内存);
  • 支持动态内存分配(使用malloc/free等函数对内存进行分配和释放);
  • 是表达式变得紧凑和简洁
  • 提供用指针传递数据结构的能力不会带来庞大的开销(只传递地址而不传递实际数据)
  • 保护作为参数传递给函数的数据
  • 容易实现多种数据结构(如链表等)

1.2声明指针

通过在数据类型后面跟星号,再加上指针变量的名字可以声明指针:
int * pi;
int* pi;
int *pi;
int *pi;
上述四种声明方式均合法,星号两边的空格无关紧要。

注意上述pi表示指针变量的名字,100表示指针变量所在的内存,而……部分表示的是指针Pi的内容,若没有对其进行初始化,则里面是垃圾数据或者不合法的内存数据。

垃圾数据。垃圾是指我们分配的内存中可能包含任何数据,当内存刚分配时不会被清理,之前的内容可能是任何东西,此时此数据就称之为垃圾数据。
*是一个被重载过的操作符,它既可以表示两个数相乘,也可以用来声明指针,第三个用途是用来解引用,即拿出指针所指向的内存中的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值