首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C - 指针C语言指针总结

C语言指针总结 1. 变量 不同类型变量在内存中占据不同字节空间。 内存中存储数据最小基本单位是字节,每一个字节都有一个内存地址,这个地址是一个十六进制数。...下面通过一张图可以更直观理解内存中地址 ? 内存中地址演示图 2. 指针 指针C语言灵魂。指针变量占据8个字节。 变量在内存中存储。 变量值:存储在变量中数据,叫做变量值。...p操作是p这个指针变量,可以取p得值,也可以为p赋值 指针变量使用 可以使用指针间接操作指针指向变量。 *p 代表 p 指针指向变量。...指针作为函数参数 如果函数参数是一个指针,那么就必须要为这个指针传递一个和指针类型相同普通变量地址,这个时候,在函数内部去访问参数指针变量时候,其实访问就是实参变量 指针作为函数参数...指针为什么要分类型? 多级指针 一个指针变量中存储是一个一级指针地址,那么它就是二级指针,一个指针变量中存储是一个二级指针地址,那么它就是三级指针

4.1K81

c语言指针有关总结

指针 指针概念 1:对内存理解 2:地址 (重点)指针定义 与指针有关运用 1:c语言动态内存管理 2:内存泄漏? 指针概念 1:对内存理解 这是我们计算机内存条。...有关更深理解点击这里 关于内存地址 我们在c语言中在定义一个变量时,系统就会为该变量分配内存空间,当我们赋值时,那么就相当于往杯子里装了水一样。...看一些资料容易混淆指针变量和和指针区别,指针变量时存放地址变量,而指针则等用于地址。有时候会把指针变量简称为指针,所以时常在碰上真正概念区别时,反而晕了。...与指针有关运用 1:c语言动态内存管理 指针一个意义在于更方便管理我们内存空间。 我们来介绍几种函数。...如果有兴趣朋友,可以关掉杀毒,运行一下,你电脑会假死后回来。 ok,关于指针总结就到这里了,欢迎留言指点。 ----jgdabc 相关请遵守csdn协议。

32030
您找到你想要的搜索结果了吗?
是的
没有找到

C语言指针使用总结

前言 说起C语言中令人头疼特性,相信大多数人都首先会提指针指针非常强大,但也非常不容易驾驭。不知道有多少人因为指针想大声对C语言高歌一曲”爱恨就在一瞬间“。...指针之所以强大,是因为它自由,可以让程序员充分发挥创意,去使用机器全部能力。 也正是因为自由,所以它放大了人不够严谨弱点,让人特别容易犯错。...这个系列文章试图对指针方面常犯错误做个梳理总结,帮助大家驯服这个C语言野马。 指针问题本质上可以分为两类,一类是读不属于自己内存,一类是写不属于自己内存。...至于为什么会读写不属于自己内存,根据问题起因,大体可以分为以下两大类情况: 分类 错误情形 说明 内容错误 1.未初始化 2.空指针 3.指针失效 指针指针指向数据错误 过程错误 1.指针偏移计算问题...2.指针访问边界问题 3.指针类型问题 4.结构体对齐问题 5.多引用访问 指针访问过程发生错误,访问到不该访问内容 后续文章, 我将对上面列举常见问题进行一一分析,看看有哪些好方法可以解决问题

93830

C语言笔记】关于数组与指针总结

参考:C语言中文网 前言 数组与指针有很密切联系,常见结合情况有以下三种: 数组指针 指针数组 二维数组指针 数组指针 数组指针:指向数组指针。...如果一个指针p指向一个数组arr[]开头,那么p+i为数组第i个元素地址,即&arr[i],那么*(p+i)为数组第i个元素值,即arr[i]。...b = 2, c = 3; //定义一个指针数组 int *arr[3] = {&a, &b, &c};//也可以不指定长度,直接写作 int *parr[] //定义一个指向指针数组指针...,该元素是一个指针,还需要在前面增加一个 * 才能取得它指向数据,也即 *arr[i] 形式。...return 0; } 运行结果为: hello C hello C++ hello Java 二维数组指针 二维数组指针:指向二维数组指针

1.1K10

C语言 | 指向指针指针

“要成为绝世高手,并非一朝一夕,除非是天生武学奇才,但是这种人…万中无一” ——包租婆 这道理放在C语言学习上也一并受用。...在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语言小白进阶到高手,需要经历是日积月累学习。 那么如何学习呢?当然是每天都练习一道C语言题目!! ? 作者 闫小林 白天搬砖,晚上做梦。...例82:C语言用指向指针指针方法对n个整数排序并输出;要求将排序单独写成一个函数;n个整数在主函数中输入,最后在主函数中输出。...解题思路:读者看着道题时候,首先要观察一下有什么规律,然后指向指针指针在上一道练习题中已经有了铺垫,读者可以联系上一道题去熟练使用指向指针指针。...我们常说“学而不思则罔”,和学习编程知识一样,我们只有在学习同时加以总结与思考,才能对编程有更系统和深入地了解,学到知识才真正能为自己所用。

3K32

C语言指针(野指针)

2:如何规避野指针 1.1:指针变量初始化 2.2:指针越界访问 3.3:指针指向空间如果我们还回去的话,就把指针指针置为NULL  4.4:指针使用之前检查有效性 1:什么是野指针?...野指针:就是指针指向位置是不可知(随机性,初始化,不正确,没有明确限制),指针变量在定义时如果未初始化,其值是随机指针变量值是别的变量地址,意味着指针指向了一个地址是不确定变量,此时去解引用就是去访问了一个不确定地址...2:如何规避野指针 1.1:指针变量初始化 int a = 10; int* pa = &a; //指针变量初始化 指针常见错误 引用未初始化指针变量 试图引用未初始化指针变量是初学者最容易犯错误...未初始化指针变量就是“野”指针,它指向是无效地址。 有些书上说:“如果指针变量不初始化,那么它可能指向内存中任何一个存储单元,这样就会很危险。...空指针不应与未初始化指针混淆:保证空指针与指向有效对象任何指针进行比较。但是,根据语言和实现,未初始化指针可能没有任何此类保证。它可能与其他有效指针相等; 或者它可能比较等于空指针

2.6K20

C语言 | 指向指针指针排序

“要成为绝世高手,并非一朝一夕,除非是天生武学奇才,但是这种人…万中无一” ——包租婆 这道理放在C语言学习上也一并受用。...在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语言小白进阶到高手,需要经历是日积月累学习。 那么如何学习呢?当然是每天都练习一道C语言题目!! ? 作者 闫小林 白天搬砖,晚上做梦。...例81:C语言实现用指向指针指针方法对5个字符串排序并输出。...解题思路:读者看着道题时候,首先要知道什么时指针,指向指针指针应该怎么用,一般在开发中不这样用,读者要看明白,这个很锻炼思维。...C语言源代码演示: #include//头文件 #include #define LINEMAX 20 //定义字符串最大长度 int main() {

1.7K32

C语言——指针

指针c语言一个重要概念,也是C语言一个重要特色,正确而灵活地运用它,可以使程序简洁,紧凑,高效,每一个学习和使用c语言的人,都应当深入了解地学习和掌握指针,可以说,不掌握指针就是没有掌握C精华也可以说...指针C语言灵魂(doge) 由于通过地址能找到所需变量单元,可以说,地址指向变量单元,打个比方,一个房间门口挂了一个房间号2008,这个2008就是房间地址,或者说,2008"指向"...野指针 概念:野指针就是指针指向位置是不可知,(随机性丶不正确丶没有明确限制) 野指针成因 1.指针未初始化 2.指针越界访问  如何避免野指针 1.指针初始化 2.小心指针越界...下面来看一段代码: 这里我们可以发现p跟p+1相差1 这里c是多少呢 ?...16进制C10进制是12,所以q+1和q相差4  p是整型指针相当于sizeof(int)=4 q是字符型指针相当于sizeof(char)=1; 以上就是我归纳指针一些小结 如果能帮助友友们 -

2.2K20

C语言指针

二、指针定义 三、指针初始化 四、指针运算符 五、指针用途举例 六、关于指针疑问 指针C语言中非常重要数据类型,如果你说C语言中除了指针,其他你都学得很好,那你干脆说没学过C语言。...1.我们已经知道,"直接引用"是直接通过变量名来读写变量 2.C语言中还有一种"间接引用"方式(以变量a为例):首先将变量a地址存放在另一个变量中,比如存放在变量b中,然后通过变量b来间接引用变量a...3.总结一句:用来存放变量地址变量,就称为"指针变量"。在上面的情况下,变量b就是个"指针变量",我们可以说指针变量b指向变量a。...* 看下面的代码,利用指针p读取变量c值 1 int i = 2; 2 char c = 1; 3 4 // 定义一个指向char类型指针 5 char *p = &c; 6 7 // 取出 8...这个要根据内存来分析 根据变量定义顺序,这些变量在内存中大致如下图排布: 其中,指针变量p和int类型变量i各占2个字节,char类型c占一个字节,p指向c,因此p值就是c地址 ?

3.3K60

C语言_初识C语言指针

前言 内存是电脑上特别重要存储器,计算机中程序运行都是在内存中进行。 所以为了有效使用内存,就把内存划分成一个个小内存单元,每个内存单元大小是一个字节。...计算机 存储器 容量是以 字节 为最小单位来计算,对于一个有128个存储单元存储器,可以说它容量为128字节。...为了能够有效访问到内存每个单元,就给内存单元进行了编号,这些编号被称为该内存单元地址 编号 = 地址 = 指针 指针变量 = 变量 = 存放地址变量 ---- 一、指针 … 一个内存单元多大比较合适...-- 通过pa里存放a地址找到a ---- 三、指针变量大小 指针变量是用来存放地址 32位机器上:地址是32个二进制位,这个地址要存储的话要4个字节,所以在32位机器上,指针变量大小是...64位机器上:地址是64个二进制位,这个地址要存储的话要8个字节,所以在64位机器上,指针变量大小是8个字节。

15230

C语言: 指针

目录 概念: 指针类型 指针解引用 野指针指针成因 空指针 指针与数组 指针在数组中使用: 二级指针 ---- 概念: 在计算机科学中,指针(Pointer)是编程语言一个对象,利用地址...指针类型与指向目标的类型一致,指针指向是目标的地址。...例如: int a=10; int* p=&a; 总结指针类型决定了,对指针解引用时候有多大权限(能操作几个字节)。...野指针 概念: 野指针就是指针指向位置是不可知(随机、不正确、没有明确限制指针变量 在定义时如果未初始化,其值是随机指针变量值是别的变量地址,意味着指针指向了一 个地址是不确定变量...0; } 指针指向是目标变量地址,那么二级指针指向就是指针地址。

2K70

C语言指针

学习 C 语言指针既简单又有趣。通过指针,可以简化一些 C 编程任务执行,还有一些任务,如动态内存分配,没有指针是无法执行。所以,想要成为一名优秀 C 程序员,学习指针是很有必要。...指针变量就是一种变量, 和其他种类变量类似, 但指针和其他变量又有区别. 首先C语言作为一种类型语言, 每个变量都会有几个属性. 变量名称. 变量类型. 变量值....指针变量声明一般形式为: type *var-name; 在这里,type 是指针基类型,它必须是一个有效 C 数据类型,var-name 是指针变量名称。...Address stored in ip variable: bffd8b3c Value of *ip variable:20 类型 对于C语言来说, 搞清楚变量类型相当重要, 涉及到指针时候就更加重要...整个来说: next是一个指针, 指向一个函数, 函数返回值也是一个指针, 指向一个类型为char常量指针. C语言为类型语言, 即每个变量都有类型.

2.6K20

C语言(失效指针

曾经以为,C语言对我来说已经深入骨髓,所有语法细节早已烂熟于胸,直到我遇到了一道笔试题,一道丧心病狂笔试题,才渐渐明白,图样!图森破!哎我还是太年轻。。。...原题代码复杂,记不住,但考核关键语法点嘴脸如下: // 失效指针 int main(void) { void (*p)(); // 定义了一个指针 int a = 100;...我们将源代码稍作修改: // 失效指针 int main(void) { void (*p)(); // 定义了一个指针 int a = 100; p = &a;...将代码再改一下: // 失效指针 int main(void) { void (*p)(); // 定义了一个指针 int a = 100; p = &a; //...让指针p指向了a printf("p: %#x\n", p); // 将指针p存储地址以十六进制输出 printf("*p: %#x\n", *p); // 将指针p目标

70220

谈谈C语言指针

C语言指针是啥? 举个栗子:新学期到了,小明正式开启了自己大学生活,他课表显示,今天上午十点,在教一204教室有一节计算机专业课。小明迫不及待来到教一,但他不知道教一204教室是哪间教室。...这个时候,他在教一门口看见了一个指路牌,上面就写着教一204教室具体位置,于是他直奔教一204教室开始上课。 上述栗子中提到 指路牌 顾名思义,就类似于C语言指针。...指针专业术语: 指针是一种编程语言对象,它是存储位于计算机内存中另一个值内存地址。...参考资料:《C++ Primer Plus》 我们在编写C语言代码时,当写下一个 int a; 计算机就会帮我们在内存中给这个a分配一个内存,当我们对a赋值6时,计算机就会满世界在内存中寻找这个a地址...下面我来引用一位大佬总结: ①全局变量是所有的函数外部定义变量,它作用域是整个程序,也就是所有的源文件,包括.c和.h文件,和函数模块化编程相违背,不利于程序修改、调试和移植。

40920

C语言指针进阶

目录 指针进阶 前言 1. 字符指针 2. 数组指针 3. 指针数组 4. 数组传参和指针传参 5. 函数指针 6. 函数指针数组 7. 指向函数指针数组指针 8....回调函数 ---- 指针进阶 前言 上文简易指针中我们介绍了一些常见简单指针用法 链接:简单指针 这期,咱们来学习进阶版指针用法。 1....而指针str3、指针str4则是指向同一块内存中存放字符串,所以他们是相同。 2. 数组指针 顾名思义,这是一种指针,并且是一种可以指向数组指针。 那么他是哪种形式呢?...看看以下例题分析:  一维数组: 当传入是数组名时候,函数参数无论是数组、指针、还是指针 [ ] 都是可以 当传入指针数组数组名,那么这时候就要用到二级指针了,指向指针地址了。...因为他性质是一个数组,所以名字是要和 [ ] 先结合。 7. 指向函数指针数组指针 最下面这一行就是指向函数指针数组指针。 怎么理解这一行呢?

58330

C++ 指针总结

本文链接:https://blog.csdn.net/ZY_FlyWay/article/details/102490751 最近在blink看到很多刚学C++学弟学妹,手有点痒,毕业快5年了,C...写这篇文章回顾下C++我在大学学习时候误区,希望可以让和我一样同学少走点弯路。 指针 这是我大学噩梦,好几个问题一直在脑子里转来转去,虽然老师讲了指针就是一块内存,它可以指向另一个内存。...总结:为了更方便去使用数据\color{red}{总结: 为了更方便去使用数据}总结:为了更方便去使用数据 问题一: 指针指向指针故事 ---- 其实这个问题挺简单,只是以前被我想复杂了,主要是二维数组例子...: a地址:0x7ffeefbff55c p地址:0x7ffeefbff550 pp地址:0x7ffeefbff548 ppp地址:0x7ffeefbff540 p指向地址:0x7ffeefbff55c...问题三: 数组和指针关系 ---- 相信学C语言同学一定想过这个问题。

68540

C语言灵魂——指针

你需要了解函数、循环、数组等C语言知识 ---- C语言灵魂——指针 1.指针基本介绍 ---- 计算机每一个字节都有一个地址。...---- 指针和字符数组 字符数组 在C语言中为了更高效操作字符串,我们需要理解一些事情, 我们如何把字符串存入和字符数组, 为了能够在字符数组中存储字符串,首要需求就是字符数组必须要足够大,大到能够容纳字符串...,字符数组大小要大于等于字符数量+1, C语言字符串必须以null结尾,这就是为什么我们需要一个额外空间,是用来存放null。...char c1[5] = "hello";char* c2; 我们使用这个数组名字和这个字符指针名字放到等式中是成立。...也可以看看我这篇笔记——C语言动态内存开辟 | 半生瓜のblog (doraemon2.xyz) ---- 相关函数: 堆上分配内存相关函数malloc calloc realloc 释放内存free

84610

C语言指针(三)函数指针

函数指针 在我们定义函数时候,编译器也会在内存空间给函数开辟一个内存,而该内存首地址就是函数内存地址,而函数指针就是指向该内存地址。...3.1 函数 众所周知,C语言是面向过程语言,或者称函数式编程。 而在C语言中,函数也确实起了很大作用,在C语言学习中,你见过最多可能就是main函数,同时也是你第一个见得函数。...; return 是函数结束关键字,返回值为0表示程序正确运行,为其他表示有其他异常 切记main函数不要void main(){},这个真的很重要 ❞ 3.2 指向函数指针 见名知意,这个东西也是一个指针...,只不过他指向是一个函数,准确来说是函数在内存空间中开辟空间头地址。...funP int ans = funP(1, 2); // 使用指针使用函数 printf("%d", ans); return 0; }

2K00
领券