
C语言指针
文章平均质量分 56
CYN.cz
坚持下去
展开
-
15.4C语言指针 指针运算笔试题解析
2.要注意指针cpp的指向的改变会影响下一段代码的运行,还有cpp的指向在一个表达式中没有变。❗易忽略:逗号表达式,从左向右计算,整个表达式结果是最右的结果。❗下面代码在x86环境下 假设结构体的大小是20个字节。❗考查指针±整数运算。1.要遵循计算优先级。原创 2023-09-12 14:59:07 · 145 阅读 · 2 评论 -
15.3C语言指针 有关strlen的数组和指针笔试题解析
1.sizeof(数组名):整个数组大小。此时数组名表示整个数组。3.除了上面两种的情况,其他带有数组名的,数组名都表示首元素地址。2.&数组名:数组的地址。此时数组名表示整个数组。原创 2023-09-06 22:07:31 · 99 阅读 · 0 评论 -
15.2 C语言指针 有关sizeof 的数组和指针笔试题解析
❗注意:地址内存大小在x64环境下是8个字节,在x86环境下是4个字节。不同的环境对类型的大小无影响。原创 2023-09-04 10:15:42 · 141 阅读 · 0 评论 -
15.1C语言指针 sizeof和strlen的对比
sizeof 是操作符,用于计算变量所占内存空间大小,单位是字节,如果操作数是类型,则计算的是使用类型创建的变量所占空间大小。从strlen函数的参数str中这个地址开始向后统计\0之前字符串中字符个数,strlen函数会一直向后找\0字符,直到找到为止。❗sizeof 只关注占用内存空间的大小,不在乎内存中存放的数据。原创 2023-09-02 21:01:50 · 124 阅读 · 0 评论 -
14.C语言指针 回调函数、qsort使用、qsort函数模拟实现
回调函数:把调用的函数的地址以参数的形式传递过去,使用函数指针接收,函数指针指向什么函数就调用什么函数。例如要写一个计算器实现加法,减法,乘法,除法,退出计算器。原创 2023-08-16 22:05:14 · 197 阅读 · 0 评论 -
13.2C语言指针 函数指针变量、函数指针数组、转移表
🌏函数指针变量:⽤来存放函数地址的,未来通过地址能够调⽤函数的。🌏==函数名就是函数的地址,也可以通过&函数名作为函数地址==🌙函数指针变量的写法其实和数组指针⾮常类似。例如:数组指针:int (*p1)[10]函数指针:int (*p2)(int x,int y)🌈函数指针解析:int:p2指向函数的返回类型(*p2):函数指针变量名(int x,int y):p2指向函数的返回类型int (*)(int x,int y):p2函数指针变量的类型原创 2023-08-15 22:43:42 · 327 阅读 · 0 评论 -
13.1C语言指针 字符指针变量、数组指针变量、二维数组传参的本质
🌏数组指针变量:存放的应该是数组的地址,能够指向数组的指针变量。int (*p)[10]🌈解释:p先和*结合,说明p是⼀个指针变量变量,然后指着指向的是⼀个⼤⼩为10个整型的数组。所以p是⼀个指针,指向⼀个数组,叫数组指针。原创 2023-08-15 18:08:48 · 164 阅读 · 1 评论 -
12.2C语言指针 冒泡排序、二级指针、指针数组、指针数组模拟二维数组
🌏指针数组:存放指针的数组,每个元素都是用来存放指针,则每个元素又可以指向一块区域。原创 2023-08-15 10:35:28 · 692 阅读 · 1 评论 -
12.1C语言指针 数组名的理解、使用指针访问数组、一维数组传参本质
数组名就是数组⾸元素(第⼀个元素)的地址。但是,有两个例外数组名表示整个数组。🌙1.==sizeof(数组名)==,sizeof中单独放数组名,这⾥的数组名表⽰整个数组,计算的是整个数组的⼤⼩,单位是字节🌙2.==&数组名==,这⾥的数组名表⽰整个数组,取出的是整个数组的地址(整个数组的地址和数组⾸元素的地址是有区别的)原创 2023-08-14 22:51:54 · 230 阅读 · 0 评论 -
11.3C语言指针 指针运算,野指针,assert断言
🌏1.指针初始化(1)知道指针指向哪⾥就直接赋值地址。(2)不知道指针应该指向哪⾥,可以给指针赋值NULL。🌏4.避免返回局部变量的地址🌏2.小心指针越界⼀个程序向内存申请了哪些空间,通过指针也就只能访问哪些空间。🌏3.指针变量不再使⽤时,及时置NULL。🌏 assert() ⽤于在运⾏时确保程序符合指定条件,如果不符合,就报错终⽌运⾏。这个宏常常被称为“断⾔”。🌏要运用头文件assert.h🌏如果程序⼜出现问题,可以移除这条 #define NDBUG 指令(或者把它注释掉原创 2023-08-14 21:42:36 · 152 阅读 · 0 评论 -
11.4C语言指针 指针初使用和传址调用,模拟库函数实现strlen
❗那是因为形参只是实参的拷贝,两者处在不同空间,就算传值到函数里面实现了值的交换,那也只是形参自己的交换,不影响实参,实参并没有真正交换。在11.2C语言指针章中学习指针变量类型意义后,我们尝试利用一下指针解决一些问题。🌏结论:传a和b的地址过去,实则Swap函数。❓那为什么不是直接将a值和b值传过去给实参呢。写一个函数,实现两个整型变量值交换。🌙先看例子,用循环方法打印数组。原创 2023-08-14 21:44:54 · 185 阅读 · 0 评论 -
11.2C语言指针 指针变量和取地址符(&),const的使用
结论:const 如果放在 * 的左边,修饰的是指针指向的内容(n),保证指针指向的内容不能通过指针来改变。const如果放在 * 的右边,修饰的是指针变量本⾝(p),保证了指针变量的内容不能修改,但是指针指向的内容(n),可以通过指针改变。整型变量占了4个字节,现在我们只知道第一个字节的地址,但是我们可以顺着下去推出该变量其他字节的地址,然后访问到这些地址的数据。在内存上开辟空间,向内存申请4个字节的空间,存放数据1,且每个字节都有地址,地址如图所示。&a取出来的是a所占四个字节中地址较小的字节的地址。原创 2023-08-13 22:48:47 · 2587 阅读 · 2 评论 -
11.1C语言指针 看懂指针与内存和地址关系、内存如何编址
内存分为一个个内存单元,每个内存单元大小为1个字节(8个比特位),每个内存单元都有一个编号,CPU通过这些编号,找到一个内存空间,这个编号叫做地址,在C语言中,我们又把这个地址叫做。简单了解,例如32位机器有32根地址总线,每根线有两态,0和1(电脉冲有无),则一根线有两种含义,32根线,有2^32种含义,每一种含义代表一个地址。形象地来说,内存是一栋楼,一个内存单元是一户人家,指针是门牌号,CPU是我们,我们通过门牌号可以找到那户人家住的地方。原创 2023-08-13 12:28:04 · 695 阅读 · 1 评论