Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >指针(1)

指针(1)

作者头像
秦jh
发布于 2024-01-19 02:25:51
发布于 2024-01-19 02:25:51
950
举报
文章被收录于专栏:c语言,c++c语言,c++

指针基本概念

1.指针变量是一个变量,用来存放地址,地址唯一标识一块地址空间。

2.指针的大小固定是4/8个字节(32位平台/64位平台)。

3.指针有类型,指针的类型决定+-整数的步长,以及解引用时的权限。

字符指针:

如图,这是最简单的例子,我们利用指针p指向ch的地址,打印时,解引用p就能打印字符g啦。

如果使p指向常量字符串,打印时只打印了a这是为什么呢?其实,当我们用指针指向常量字符串时,指向的是首字符的地址,即a的地址。如果我们想打印字符串,直接用%s即可。

如上图是一种比较特殊的写法,我们可以把它当成数组,通过[]来选取某个字符。 

不过需要注意的是,我们不能通过指针p来改变常量字符串的内容,否则就会出现下面的情况

分析:str1和str2是两个数组,数组的操作方式是将右边常量字符串的内容拷贝进来,所以他们是两个空间,只是内容相同,所以str1 != str2。而str3和str4是两个指针,编译器在处理的时候,会将相同的常量字符串做成同一个地址,所以,str3和str4指向的是同一个常量字符串,所以str3 == str4。如果在str3和str4前面都加上&,这时,他们表示的是各自的地址,就不一样了。如下图。

指针数组

指针数组是数组,是用来存放指针的数组。

上面是用指针数组模拟一个二维数组,因为arr里的元素都是指针,所以arr的类型是int*。

数组指针 

数组指针就是指向数组的指针。

如上图,表示的是指针p指向有10个元素且元素都是整形的数组,注意*p左右两边的括号不能省略,否则就会变成指针数组了。注意:方括号里的大小不能省略,如果省略了,系统会默认是0。

例子:

分析:二维数组传参,形参部分可以写成指针。数组名是数组首元素的地址,我们可以把二维数组看成两个一维数组,此时p指向arr第一行的起始地址。

函数指针

可以看出,&函数名就是函数的地址,函数名也是函数的地址。 

如上图,如果我们想用p指向add函数,可以先写出(*p),注意括号不能省略,接着查看add形参的类型和返回值的类型,按上图所示即可写出。(add前面的&可有可无)。

如果我们想调用,只需解引用然后给上实参即可。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-11-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
小代老师带你深入学习指针!!!深入理解指针(3)
既然放入指针里面的常量字符串无法被修改,那么为了程序的稳健性,我们在程序里面加入const
用户11319080
2024/10/17
870
小代老师带你深入学习指针!!!深入理解指针(3)
C语言进阶-高阶指针
目录 前言 字符指针 指针数组 数组指针 &数组名VS数组名 数组指针的使用 数组参数、指针参数 一维数组传参 二维数组传参 一级指针传参 二级指针传参 函数指针 函数指针数组 指向函数指针数组的指针 ---- 前言 对于初阶指针内容在我的另一篇文章中已经写到(有想法的可以去看看) 附上链接:C语言初阶指针 回顾: 1. 指针是地址,指针变量是用来存放地址的变量(唯一标识一块内存空间)  2. 指针的大小是固定的4/8个字节(32位平台/64位平台)  3. 指针的类型决定了指针的+-整数的步长,指
用户9645905
2022/11/30
4400
C语言进阶-高阶指针
C语言----深入理解指针(3)
char* p = "abcdef";//这里的赋值是讲字符串中首字符的地址存在p中
Undoom
2024/09/23
1320
带你深层了解c语言指针
arr1数组,arr2数组,arr3数组在内存中都有自己独立的内存空间, 我们将这三个一维数组的首元素地址放在一个新的指针的数组(arr)中,通过指针数组来访问这三个一维数组,效果就如同二维数组一样,但并不是真正的二维数组. 图解:
初阶牛
2023/02/27
3020
带你深层了解c语言指针
【C语言期末不挂科——指针进阶篇】【上】
  指针的类型里面我们知道有一种指针 类型为 字符指针(char *),经过初阶的学习我们已经能用:
用户11029129
2024/06/04
1040
【C语言期末不挂科——指针进阶篇】【上】
C语言(指针)5
用指针数组来表示二维数组是非常适合的,因为二维数组的每一行就像一个一维数组,这个一维数组也是可以通过指针来访问。
_小羊_
2024/10/16
800
C语言(指针)5
指针进阶(1)
代码 const char* p = “abcdef”; 并不是把字符串 abcdef 放到字符指针 p 里去,而是把字符串 abcdef 首字符的地址放到 p 中去;同时,因为 abcdef 是一个常量字符串,所以要用 const 进行修饰,以保证 p 中的内容不会被修改。
waves浪游
2024/01/22
1420
指针进阶(1)
【C语言进阶】深入C语言指针:基础到进阶的跨越
前言:在编程的浩瀚星空中,指针犹如一颗璀璨的星辰,它不仅照亮了C语言乃至许多其他编程语言的深邃之路,更是衡量一个程序员技能深度与广度的重要标尺。对于每一位渴望在编程领域深耕细作的开发者而言,掌握指针的进阶应用,无疑是通往高手殿堂的必经之路
Eternity._
2024/08/29
1580
【C语言进阶】深入C语言指针:基础到进阶的跨越
深入浅出C语言指针(进阶篇)
在C语言中,指针是至关重要的一部分,掌握指针的用法对于编写高效、简洁的代码具有极大帮助。本文将带您深入了解C语言指针的高级用法,助您迈向编程高手之路。
平凡之路.
2024/10/09
1790
深入浅出C语言指针(进阶篇)
指针进阶详解
理论上字符串第一个字符被改为w,实际上代码无法正常运行,直接挂掉。所以避免被修改,我们const修饰字符指针,避免其被改。
用户10517932
2023/10/07
2450
指针进阶详解
C语言重点突破(2)指针(二)
在我的前一章节,我们提到指针也有类型的区分,有整型指针,浮点型指针,下面我们讲讲字符指针
对编程一片赤诚的小吴
2024/01/23
1510
C语言重点突破(2)指针(二)
手撕指针(三)
*ppa 通过对ppa中的地址进⾏解引⽤,这样找到的是 pa , *ppa 其实访问的就是 pa .
用户11367247
2024/11/20
520
手撕指针(三)
指针详解(二级指针、指针数组和数组指针、字符指针、二维数组传参、函数指针变量)(二)
走在努力路上的自己
2024/01/26
8450
指针详解(二级指针、指针数组和数组指针、字符指针、二维数组传参、函数指针变量)(二)
C语言 —— 此去经年梦浪荡魂音 - 深入理解指针(卷三)
迷迭所归处
2025/03/20
920
C语言 —— 此去经年梦浪荡魂音 - 深入理解指针(卷三)
拿捏指针(二)
前面我们已经讲了,C语言的第一篇《拿捏指针(一)》,接下里我们继续深入的来了解指针。
秋邱
2024/10/09
940
拿捏指针(二)
c语言从入门到实战——数组指针与函数指针
数组指针和函数指针是C语言中的两种重要指针类型。数组指针指向一个数组,可以用来访问和修改数组中的元素;而函数指针则指向一个函数,可以用来调用该函数。两者在语法和用法上有所不同,需要仔细区分。正确理解和使用它们可以提高程序的效率和可维护性。
鲜于言悠
2024/03/20
2100
c语言从入门到实战——数组指针与函数指针
【C语言】指针进阶:字符指针&&数组指针&&函数指针
✨作者:@平凡的人1 ✨专栏:《C语言从0到1》 ✨一句话:凡是过往,皆为序章 ✨说明: 过去无可挽回, 未来可以改变 ---- 🌹感谢您的点赞与关注,同时欢迎各位有空来访我的🍁平凡舍 ---- 文章目录 @[toc] 🚀前言 🚀字符指针 🚀指针数组 🚀数组指针 🍁&数组名 与 数组名 🍁数组指针的使用 🚀数组传参、指针参数 🍁一维数组传参 🍁二维数组传参 🍁一级指针传参 🍁二级指针传参 🚀函数指针 🚀结语 🚀前言 回想之前,我们学了指针的一些基础👉 指针与结构体 我们知道了指针的概念
平凡的人1
2022/11/15
3.4K0
【C语言】指针进阶:字符指针&&数组指针&&函数指针
【C指针进阶】(C精髓)——对指针的更进一步深入剖析(图文近2w详解)
本文承接了上文:初阶指针——全面了解指针,在此基础上对指针进行更深一步的剖析,相信我,也请相信你自己!
诺诺的包包
2023/02/17
6260
【C指针进阶】(C精髓)——对指针的更进一步深入剖析(图文近2w详解)
初识C语言·指针(3)
打印出来的结果是没有异议的,只是,指针变量只能存一个元素的地址,那pc存的是谁的地址呢?
_lazy
2024/10/16
880
初识C语言·指针(3)
【C语言基础】:深入理解指针(三)
书山有路勤为径,学海无涯苦作舟。 创作不易,宝子们!如果这篇文章对你们有帮助的话,别忘了给个免费的赞哟~
爱喝兽奶的熊孩子
2024/04/10
1170
【C语言基础】:深入理解指针(三)
相关推荐
小代老师带你深入学习指针!!!深入理解指针(3)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档