- 博客(9)
- 收藏
- 关注
原创 区分sizeof与strlen
注:short短整型是两个字节,第一个表达式输出与a有关,a等于4,但是我们sizeof是计算你内存大小的操作符管你三七二十一,short两个字节输出就是2,over。(b是整型加上4,它们的类型是整型占了4个字节毫无疑问,但是硬要存放到short类型里面的话它会发生截断,从四个字节硬生生砍两个字节,好理解吧)sizeof是单目操作符不是函数!(最明显的区别就是函数的调用少不了后边的(参数),但是我们sizeof操作时后面如果是变量可以不加括号)计算变量所占内存空间大小的,
2025-04-06 15:56:34
150
原创 typedef关键字:类型重定义
其实应该整个来看void(*——)(int),没错,这个就是它的返回类型,返回类型也是一个函数指针,返回一个函数给你,这个函数呢没有返回类型,参数为整型。如:数组指针int (*p) [5],这个是数组指针,类型为去掉函数名剩余部分(int(*)[5]),这里我们重定义的名字就不是放在改名类型后面,而是放在括号里面——>typedef int(*pf_t)[5],这里pf_t就是我们重定义的名字。而#define PTR_T int*,作用是定义一个符号叫PTR_T,它里面的内容是int*。
2025-04-03 19:50:36
465
1
原创 理解函数指针
注意,小括号一定不能省略,这个小括号的存在使得p1,p2优先和前面的*结合,意在告诉你这是个指针变量。如果没有这个小括号,它会和后面的结合p1[10],p2{int , int} ,这里p1,p2就成了数组名和函数名了。如果函数不需要传参那么你就不用给它参数,如果函数类型是void,不会返回值给你,那在函数指针调用时你就不用写那个int,根据实际情况来写就行。升级代码:由一开始我们提到的函数名就是函数地址,这里我们是不是可以考虑不需要解引用直接写函数指针变量来调用这个函数,即int d=p1(1,4)
2025-04-03 00:10:50
319
原创 二维数组的传参
指针相当于数组,指针就是一个地址,而我们的数组本身就是一个地址,p相当于&arr,将整个数组arr都取出来,因为p的类型是数组指针int(*)[5](去掉数组名就是指针类型),+i代表着我们一次性跳过i个这么长的数组,相当于我们访问第i行元素,找到第i行后,+j就是代表第j列。每当我们想要将二维数组里的东西,也就是我们的参数传到某个函数中,我们在形参里既可以直接传一维数组,也可以通过我们的数组指针将首元素一维数组的地址取出来,通过我们的这个数组指针也可以找到对应的二维数组的元素。知识点:理解二维数组。
2025-04-02 20:05:00
286
原创 数组指针与指针数组的区别
第一个是我们的指针数组,因为没有小括号(),p1先和后面的[10]结合,告诉你p1[10]我们是一个整体是一个数组,什么数组?侧重点在于后两个字数组。本质上是一个数组,用来存储指针的这么一个数组,可以是int*,float*,char*......第二个是我们的数组指针,首先有个小括号,里面p2和前面的*结合告诉你,我们这是一个指针,什么指针呢?哦,指向后面包含了十个元素的数组的这么一个指针,侧重点在于后面两个字指针,通过我们的这么一个指针可以找到对应的数组,所以我们称它为数组指针,可以找到数组的指针。
2025-04-02 14:07:50
259
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人