C语言入门之指针用法教程

这篇文章主要介绍了C语言入门之指针用法教程,主要对C语言中指针的本质及常见用法做了较为通俗易懂的分析,是后续深入学习C语言的基础,需要的朋友可以参考下

undefined

undefined

对于C语言初学者来说,需要明白指针是啥?重点就在一个“指”上。指啥?指的地址。啥地址?内存的地址。

上面说明就是指针的本质了。

这里再详细解释下。数据存起来是要存在内存里面的,就是在内存里圈出一块地,在这块地里放想放的东西。变量关心的是这块地里放的东西,并不关心它在内存的哪里圈的地;而指针则关心这块地在内存的哪个地方,并不关心这块地多大,里面存了什么东西。

指针怎么用呢?下面就是基本用法:

int a, b, c;
double f;int *pt_a = &a, *pt_b = &b, *pt_c = &c;
double *pt_f = &f;

上面两行声明了三个int类型的变量a,b,c,一个double类型的变量f。下面就是指针的用法了,声明变量的时候只需要在变量前面加上“*”这个符号就说明了这个变量是指针,而前面的“int”说明指针指向的内存里面存放着int类型的变量。

变量和指针的声明也可以放到一起:

int a, b, c;
double f;int other, *pt_a = &a, *pt_b = &b, *pt_c = &c;
double x = 0, *pt_f = &f;

然后就是新的运算符——“&”了。是不是很熟悉?没错,这个就是scanf里面的那个“&”。它是取地址符,即用在变量前面使用这个运算符,能够获得这个变量在内存里面的地址。由此就可以解释scanf双引号后面为何要使用“&”了,就是将前面按照格式读进来的数据,按照后面给出的地址直接填进内存里,所以scanf双引号后面提供的参数实质上并不是希望赋值的变量,而是希望保存数据的地址。所以,例如如果有int类型的变量a,同时有指向它的指针pt,那么下面两句是等效的:

scanf("%d", &a);
scanf("%d", pt);

回到指针,接下来就是修改指针指向变量的值了,怎么弄呢?下面就是例子:

int a;
int *pt = &a;
*pt = 123; // 该语句等同于 a = 123;

不要把“*”给忘了哈。

至于这个“*”符号,可以这么理解:需要用到指针指向的内容时,加上“*”,此时它等同于一个变量;只是需要指针的地址时,不需要加“*”,此时它代表内存的地址。

而指针也可以改变它指向的地址:

C语言入门之指针用法教程相关推荐

  1. VML编程之------VML语言入门《VML极道教程》原著:沐缘华

    <VML极道教程>原著:沐缘华 1章4节:VML语言入门 1:VML语言入门 - 极道学法 在我正式开始讲解.你正式开始学习VML语言以前,请务必遵循以下规则,可以达到最佳效果.极道学习方 ...

  2. 最新易语言入门到精通全套教程

    课程每节课都讲了快一个小时,实战部分还是值得学习的,课程内容也是讲撸各种活动的. [大姐]暑假班第一节.我的第一个程序. [大姐-第二课]变量.条件判断命令 [大姐-第三课]变量类型与文本处理 [大姐 ...

  3. C语言typedef函数指针用法

    1.简单的函数指针的应用 形式1:返回类型(*函数名)(参数表) char (*pFun)(int); char glFun(int a){ return;} void main() { pFun = ...

  4. C语言 const 修饰指针 - C语言零基础入门教程

    目录 一.const 简介 二.const 修饰指针 1.const int *p 2.int const *p 3.int * const p 4.const int * const p 三.猜你喜 ...

  5. 10万字C语言入门手册,历时三个月,详细的C语言教程终于出炉了,给你全新C语言入门体验

    C语言是一种非常流行的编程语言,它是许多现代编程语言的基础. 什么是计算机? 计算机是一种用于存储.处理.和输出数据的电子设备.它通过程序控制和数学算法来实现数据处理.计算机通过输入设备(如键盘.鼠标 ...

  6. c语言指针用法及实际应用详解,通俗易懂超详细

    c语言指针用法及实际应用详解,通俗易懂超详细! \\\插播一条:文章末尾有惊喜哟~/// 今天给大家来讲解一下指针. 我会由浅到深,最后联合实际应用讲解,让大家学会指针的同时,知道大佬们都用指针来干嘛 ...

  7. c++ 结构体赋值_《零基础看得懂的C语言入门教程》—(十二)结构体是这么回事

    一.学习目标 了解C语言的结构体的使用方法 了解C语言结构体的结构的赋值 了解多种C语言结构体变量的赋值方法和取值方法 目录 <零基础看得懂的C语言入门教程>--(二)简单带你了解流程 & ...

  8. python语言入门n-python语言入门之字符串的一些用法

    本篇教程探讨了python语言入门之字符串的一些用法,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入. < 一.字符串的拼接: a="123' b="ab ...

  9. Python语言学习:python语言的特点、入门、基础用法之详细攻略

    Python语言学习:python语言的特点.入门.基础用法之详细攻略 相关内容 Python 基础教程 目录 python语言的特点 python语言的入门 python语言的基础用法 python ...

最新文章

  1. php的json格式
  2. 主nginx linux,Linux-实现双主模型的nginx的高可用
  3. Python 条件语句 学习转载
  4. 【2018.4.7】模拟赛之六-ssl2387 树【图论,树】
  5. mysql 获取每天的日期_mysql中获取一天、一周、一月时间数据的各种sql语句写法...
  6. python throw error_Python实用笔记——错误处理
  7. 调度失败:执行器地址为空_三千字带你搞懂XXL-JOB任务调度平台
  8. 乘积取中法matlab,迭代取中法、乘同余法及混合同余法产生随机数方法
  9. Regularized Gaussian Covariance Estimation
  10. 简单java游戏代码_Java经典小游戏——贪吃蛇简单实现(附源码)
  11. otdr进行多种测试鸿蒙包括,OTDR 测试
  12. 昂达v819i安卓bios
  13. UMTS 与 WCDMA的区别
  14. 如何快速打开控制面板?如何让控制面板在桌面显示?
  15. 循环小数是分数集合吗_无限循环小数都可以化成分数吗
  16. CryEngine Plugin 创建
  17. Redis - Redis分布式算法原理——Hash一致性理解 Hash倾斜性解决方案
  18. Gephi安装教程——1
  19. 抖音发广告需要注意什么,三个注意事项与规范要牢记
  20. AI领域算法作者及项目直播分享汇总-不断更新ing

热门文章

  1. java web 线程_多线程在javaweb中的应用
  2. 大学生拍照搜题_大学生心理健康教育知识,请问:这个考试有没有找答案软件?...
  3. html body 边框,html – 如何在表的tbody / thead部分创建边框?
  4. 小米笔记本充电实测追求速度牺牲兼容性小米笔记本充电驱动_是海尔?也是雷神?不足1千克MixBook Air超轻薄笔记本...
  5. ant design pro 5_iPhone12/Pro现已在天猫旗舰店下架
  6. 大数据复核_【BIM技术】三维扫描结合BIM技术在结构复核中的应用
  7. 漫画 | 苦逼项目是如何诞生的?
  8. 逻辑电平0和1的世界
  9. 商业银行vh是哪个银行的简称_各个银行的字母缩写?
  10. 删除对于job收缩日志失败547_MySQL中常见的几种日志