C语言复习:指针

本文深入探讨了C语言中的指针概念,包括指针的内存表示、类型与初始化、NULL指针的使用。此外,还对比了指针与数组的区别,并介绍了函数指针和指针函数的定义及调用方式。通过本文,读者将对C语言的指针有更全面的理解。
摘要由CSDN通过智能技术生成

这篇博客是对于我个人的知识的复习,当然如果有某位大佬能够指出这里面有哪些概念含糊不清或者难懂,麻烦指出来感激不尽。

1.指针

指针恐怕C里最常见,最不起眼,但也比较难以掌握的知识。

  • 计算机内存中的每个位置都由一个地址标识,通常,在邻近的内存位置合成一组,这样就允许存储更大的值,指针就是它的值表示内存的变量。(这里我们不考虑虚拟内存等问题)
  • 通常无法通过值的位模式来判断它的类型。类型是通过值的使用方法隐式的确定的。
  • 声明一个指针变量并不会分配任何内存,因此在指针执行间接访问操作前,指针必须进行初始化,或者指向现有内存,或者分配动态内存(new?malloc?),对未初始化的指针进行访问操作是非方的。
  • NULL指针,可以赋值给一个指针,用来表示那个指针并不指向任何值,对NULL指针进行操作,结果因编译器而异,常见的后果是终止程序。(顺便说一句,在C++11中有了nullptr关键词来代替NULL,具体原因比较长,这里就不详细说了)
  • 如果两个指针都是指向同一个数组的元素,那么它们之间可以相减。指针减法的结果经过调整,表示两个指针在数组中相隔多少元素,如果两个指针并不是指向同一个数组的元素,那么它们之间进行相减就是错误的。

选自《C和指针》

2.面试常考问题指针和数组有什么区别?

当我们声明一个数组时࿰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值