////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
时隔多日,我又双叒叕发ACGO美丽小贴贴了happy\color{RED}{时隔多日,我又双叒叕发ACGO美丽小贴贴了happy}时隔多日,我又双叒叕发ACGO美丽小贴贴了happy
明天要考GESP四级,好紧张\color{ORANGE}{明天要考GESP四级,好紧张}明天要考GESP四级,好紧张
小贴士:下文全是caidan
妈妈,你干嘛呀哎呦\color{white}{妈妈,你干嘛呀哎呦}妈妈,你干嘛呀哎呦
FIRST of ALL
指针的定义与基本操作
look in my eyes this programz:
> 输出结果:
>
> >
SECOND
空指针与野指针
> WHAT IS 野指针?
>
> > ans:当指针被定义后却没有进行初始化时,它会随机指向一个内存地址,这种指针就是野指针。
>
> 输出结果
> 为避免出现野指针(即指向无效内存的指针),在定义指针时若暂时没有明确的指向,应将其初始化为空指针:
>
> >
>
> 输出结果:
>
> >
THIRD
指针与数组这里粗体是因为这个东西有点difficult其实我更本不会,一切都是课后问AI学来的\color{WHITE}{其实我更本不会,一切都是课后问AI学来的}其实我更本不会,一切都是课后问AI学来的
1.
> > 输出结果:
注意事项 看啥看,认真学\color{white}{看啥看,认真学}看啥看,认真学
> 数组名 ≠ 指针:数组名是数组的起始地址,但它本身不是指针变量(不能被赋值)。
> 当数组作为sizeof、typeid或取地址符&的操作数时,不会退化为指针。
> 2.指针算术与数组访问
> 指针可以进行加减运算,从而实现对数组元素的遍历。
>
> > int a[5] = {1, 2, 3, 4, 5};
> > int* ptr = arr;
> > // 指针加法
> > ptr++; // 指针后移一个元素(指向 arr[1])
> > cout << *ptr; // 输出: 2
> > // 指针减法
> > ptr = ptr - 1; // 指针前移一个元素(指向 arr[0])
> > cout << *ptr // 输出:1
> > 输出结果:
> >
> > >
> > attention:
> > 指针与数组下标:
> >
> > > arr[i] 等价于 *(arr + i),也等价于 (ptr + i)(当ptr指向arr时)。
> > > 指针算术会自动根据指针类型调整偏移量。例如,int 加 1 会移动 4 字节(假设int为 4 字节)。
3.多维数组与指针
多维数组在内存中是连续存储的,可以通过多级指针或数组指针访问。
>
指针与函数
把指针作为参数传递给函数,能够在函数内部对外部变量进行修改:
输出结果:
THE END
掌握指针是学习 C++ 的重要环节,它能让你高效地操作内存,不过也要谨慎使用,防止出现常见的错误。此内容由AI边写\color{white}{此内容由AI边写}此内容由AI边写
要看大彩蛋吗:
以上内容全由C++真真真难啊啊啊AI编写而成,请勿controlc,controlv\color{white}{以上内容全由C++真真真难啊啊啊AI编写而成,请勿control c,control v}以上内容全由C++真真真难啊啊啊AI编写而成,请勿controlc,controlv