定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组二十五 指针左值指针与整数指针空指针以及指向为空的指针十一 指针的运算1、 作为一种特殊的变量,指针可以进行一些运算,但并非所有的运算都是合法的,指针的运算主要局限在加减算术和其他一些为数不多的特殊运

二十五 指针左值指针与整数指针空指针以及指向为空的指针
  十一 指针的运算

  1、 作为一种特殊的变量,指针可以进行一些运算,但并非所有的运算都是合法的,指针的运算主要局限在加减算术和其他一些为数不多的特殊运算。

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  2、 把a的值5作为地址 0x00000005赋值给*p是发生访问冲突。整数与指针最好不要直接运算。

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  3、地址的赋值和指针的赋值。

  num,p1,p2 他们中一个改变,其他的两个都会跟着改变

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  4、 a被编译器解析为数组的首地址

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  通过下标循环进行遍历

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  通过指针循环进行遍历

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  5、通过dll注入的方式修改另一个进程的数据

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  通过定义并初始化二级指针p,使其改变另一个程序的指针p的指向,从而改变它的值。

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  外挂工具:cheat engine

  注意不会实时刷新

  十二 指针的算数运算

  1、 使用递增/递减运算符(++ 和 –)将指针递增或递减

  指针++就是按照指针类型的大小,前进一个类型的大小,int,前进四个字节

  指针 ++ 和 — 只有在数组的内部才有意义。

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  2、指针++ 就是 指针每次向前移动sizeof(指针类型)个字节

  通过指针循环的方式初始化数组a的每一个元素

  (从头到尾扫描数组)

  (注:格式控制符“%p”中的p是pointer(指针)的缩写。指针的值是语言实现(编译程序)相关的,但几乎所有实现中,指针的值都是一个表示地址空间中某个存储器单元的整数。printf函数族中对于%p一般以十六进制整数方式输出指针的值,附加前缀0x。)

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  3、指针加上2,在数组内部等价于向后移动两个元素的大小

  指针减去3,等价于数组内部,向前移动3个元素的大小

  此时此刻,就会打印出 3 5 2

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  4、指针的加减法在非数组内部没有任何意义,而且很容易越界报错

  一个exe不能读写其他exe进程的内存。

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  十三 指针之间的比较

  1、 对两个毫无关联的指针比较大小是没有意义的,因为指针只代表了“位置”这么一个信息, 但是, 如果两个指针所指向的元素位于同一个数组(或同一块动态申请的内存中), 指针的大小比较反映了元素在数组中的先后关系。

  2、 通过比较两个指针的地址,来判断哪个指针的位置考前还是靠后

  地址的比较没有意义,只能判断谁的地址也就是内存的编号比较靠前

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  3、通过指针指向数组中的元素,来比较数组元素的地址哪个靠前

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  4、 指针是否相等,可以判断是否指向同一地址

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  十四 指针运算

  1、 若有p指向数组a,则:

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  2、 a是一个数组

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  p=p+1;

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  十五 指针相减

  1、 指针变量所支持的另一种运算方式是两个同类型指针相减,返回值是个有符号整数

  2、举例来说,指针p1指向sz[i],指针p2指向sz[j],那么p1-p2=i-j,两个指针的距离并不是其值简单做差,还要除以“指针所指类型占用的内存字节数”。

  3、指针相减,如果值为正,p1在p2后面。值为负,p1在p2前面

  具体之差就意味着指针之间相隔几个元素的大小

  具体之差不是地址之差,而是地址之差除以指针指向元素的大小

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  指针存储的值与指针指向的数据没有任何关系

  4、数组之间可以判断谁的编号在前,谁的编号在后,并且可以判断两个指针之间相隔多少个元素。具体之差不是地址之差,而是地址之差除以指针指向元素的大小。指针相减,可以判断下标。p1<p2,p1对应元素的下标小于p2对应元素的下标。

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  十六 指针与数组

  1、 指针与数组

   指向数组元素的指针变量

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  数组名是表示数组首地址的地址常量

  注意:数组名a不代表整个数组,只代表数组首元素的地址。

  “p=a;”的作用是“把a数组的首元素的地址赋给指针变量p”,

  而不是“把数组a各元素的值赋给p”。

  2、

  数组名num就是 数组第一个元素的首地址

  num是一个指向int 类型的常量指针

  num=0x123234492; 常量不可以赋值不可以放在赋值号的左边。

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  十七 指向元素指针与指向数组的指针

  1、 指向元素的指针与指向数组的指针

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  运行结果:

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  十八 指针引用多维数组

  1、

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  2、对于二维数组

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  3、 二维数组名是指向行的,它不能对如下说明的指针变量p直接赋值:

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  十九 指针遍历输出二维数组的值

  1、 有一个3×4的二维数组,要求用指向元素的指针变量输出二维数组各元素的值。

  二维数组的元素是整型的,它相当于整型变量,可以用int*型指针变量指向它

  二维数组的元素在内存中是按行顺序存放的,即存放完序号为0的行中的全部元素后,接着存放序号为1的行中的全部元素,依此类推

  因此可以用一个指向整型元素的指针变量,依次指向各个元素

  线性的方式循环二维数组:

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  嵌套for循环的方式变量二维数组:

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  二十 指针的方式输出二维数组任意元素

  1、指针的方式输出二维数组任一行任一列元素的值

  定义一个二维数组a[3][4]

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  二十一 数组作为函数参数

  1、用指向数组的指针作函数参数

   一维数组名可以作为函数参数,多维数组名也可作函数参数。

   用指针变量作形参,以接受实参数组名传递来的地址。

   可以有两种方法:

  ①一维数组用指向变量的指针变量

  ②二维数组用指向一维数组的指针变量

  (1)一维数组用指向变量的指针变量

  int a[10] 数组作为函数参数,传递的是地址,地址就是指针占4个字节,

  函数的参数对于数组没有副本机制,为了节约内存,拷贝数组浪费空间与CPU。

  在main函数中调用test,将会打印出4

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  指针变量作为一维数组的参数

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  (2)二维数组用指向一维数组的指针变量

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  实参数组名是指针常量,但形参数组名是按指针变量处理

  2、将数组a中n个整数按相反顺序存放

  数组作为函数参数,则数组没有副本机制,等价于直接操作原生数组

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  3、用指针方法对10个整数按由大到小顺序排序。

   解题思路:

   在主函数中定义数组a存放10个整数,定义int *型指针变量p指向a[0]

   定义函数sort使数组a中的元素按由大到小的顺序排列

   在主函数中调用sort函数,用指针p作实参

   用冒泡进行排序

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  4、有一个班,3个学生,各学4门课,计算总平均分数以及第n个学生的成绩。

   解题思路:这个题目是很简单的。本例用指向数组的指针作函数参数。用函数average求总平均成绩,用函数search找出并输出第i个学生的成绩。

  求平均值:

  第一个用指向数组的指针存储二维数组名,传递多少个元素(每个元素又是一个一维数组)

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  显示出第n个学生的成绩

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  5、有一个班,3个学生,各学4门课,查找有一门以上课程不及格的学生,输出他们的全部课程的成绩。

   解题思路:在主函数中定义二维数组score,定义search函数实现输出有一门以上课程不及格的学生的全部课程的成绩,形参p的类型是float(*)[4]。在调用search函数时,用score作为实参,把score[0]的地址传给形参p。

  变量所以元素,有不及格的就跳出循环,然后打印出来

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  检测到不及格的就打印出来

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  二十二 函数指针概念

  1、 如果在程序中定义了一个函数,在编译时,编译系统为函数代码分配一段存储空间,这段存储空间的起始地址,称为这个函数的指针。

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  (1)

  定义一个函数msg

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  定义函数的指针p,使他指向函数名msg,

  直接调用p();就会执行函数msg。

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  (2)

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  定义函数的指针p,使他指向函数名add,

  直接调用add(1,10);就会执行函数add。

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  二十三 函数返回值是指针

  1、 一个函数可以返回一个整型值、字符值、实型值等,也可以返回指针型的数据,即地址。其概念与以前类似,只是返回的值的类型是指针类型而已

  定义返回指针值的函数的一般形式为

  类型名 *函数名(参数表列);

  定义全局变量

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  2、 用随机数生成一个数组,写一个函数查找最小的数,并返回最小数的地址。在主函数中打印出来最小数。

  函数返回一个地址,对于数组而言,函数参数调用没有副本机制,为了节约内存

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  二十四 函数返回值是指针练习–用途

  1、 实现字符串的拷贝

  返回拷贝好的字符串地址,进行拷贝字符串

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  2、自己实现字符串的拷贝

  返回拷贝好的字符串地址

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  上面的while循环可以拆分成如下的代码

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  二十五 指针左值指针与整数指针空指针以及指向为空的指针

  1、左值的概念, “可放在赋值号左边的都可称为左值”

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  2、空指针

  void *指针是一种特殊的指针,不指向任何类型的数据,如果需要取出,用此地址指向某类型的数据,应先对地址进行类型转换。

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  二十六 Void指针与空指针–详细讲解

  1、空类型指针可以指向任何类型的数据,包含他们的地址

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  2、任何指针都可以赋值给空类型的指针,用于保存地址

  3、memset函数

  从数组str的首地址开始,前进 5个字节,进行赋值,赋值一个字符 ’ A ’ 。

  memset(str, ’A’ ,5) ;

  对20个字节全部赋值为0,对于数组清零 (num是数组)

  memset(num, 0 ,20);

  遍历数组num的所以元素,元素值都为0。

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  4、malloc函数

  malloc的全称是memory allocation,中文叫动态内存分配,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存。原型为extern void 定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  5、空类型指针可以转换为任何类型的指针

  一个类型的指针包含三个信息:

  地址、 步长、内容如何解析

  二十七 动态分配

  1、 数组只能处理小数据

  例如:定义数组 int a[1024102410] ; 运行报错

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  2、动态分配,是指用户可以在程序运行期间根据需要申请或释放内存,大小也完全可控。动态分配不像数组内存那样需要预先分配空间,而是由系统根据程序需要动态分配,大小完全按照用户的要求来,当使用完毕后,用户还可释放所申请的动态内存,由系统回收,以备他用。

  malloc和free是C标准库中提供的两个函数,用以动态申请和释放内存

   malloc()函数的基本调用格式为:

   void *malloc( unsigned int size );

   参数size是个无符号整型数,用户由此控制申请内存的大小,执行成功时,系统会为程序开辟一块大小为size个内存字节的区域,并将该区域的首地址返回,用户可利用该地址管理并使用该块内存,如果申请失败(比如内存大小不够用),返回空指针NULL。

  在栈区开辟一段内存,系统会自己回收。

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  在堆区开辟一段内存,需要自己手动用free释放内存

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  开辟内存后立即释放掉

  free就是释放内存,例如free(p)

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  malloc()函数返回类型是void*,用其返回值对其他类型指针赋值时,必须进行显式转换。

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  二十八 free函数注意事项

  1、malloc函数和free函数 在stdlib.h头文件里面

  2、蚕食法消耗内存

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  二十九 malloc_calloc_realloc

  1、C语言标准库函数还提供了calloc函数用以动态申请内存,和malloc函数以字节为单位申请内存不同,calloc函数是以目标对象为单位分配的,目标对象可以是数组,也可以是后面会讲到的结构体等。

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  2、 calloc会自动将内存初始化为0,malloc就不会

  int num;

  scanf(“%d”,&num);

  (1)malloc函数

  //动态数组,输入19,就有19个元素,初始化

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  如果想对该数组进行扩充,就用到了realloc函数

  addnum增加的个数

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  三十 内存分配习题以及小结

  1、建立动态数组,输入5个学生的成绩,另外用一个函放数检查其中有无低于60分的,输出不合格的成绩。

  解题思路:

  用malloc函数开辟一个动态自由区域,用来存5个学生的成绩,会得到这个动态域第一个字节的地址,它的基类型是void型。用一个基类型为int的指针变量p来指向动态数组的各元素,并输出它们的值。但必须先把malloc函数返回的void指针转换为整型指针,然后赋给p

  通过malloc初始化5个学生的成绩

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  2、 free(p); //释放内存

  printf(“p=%p

  ”,p); //释放内存以后,指针的值并不发生变化

  printf(“%d

  ”,p[2]); //释放内存以后,如果再次引用指针,就会出现垃圾数值

  因此,释放内存以后,指针应该赋值为空,(p=NULL)。

  小总结:

  内存不可以反复释放,内存释放之后不可以引用否则会出现垃圾数据,

  内存释放以后,指针应该赋值为空,就可以规避再次引用,以及反复释放的问题。

  3、内存泄露

  如果没有释放内存,但记录该块内存的指针消亡了或者是指针的值发生了改变,这块内存将永远得不到回收,造成了内存泄漏

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  三十一 课后习题 植物大战僵尸

  1、游戏的阳光值为670.

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  三十二 深入指针 迷途指针

  迷途指针

  定义一个指针p,通过malloc函数为它分配内存

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  然后释放内存free(p);

  //应该在此处让p指向NULL,也就是p=NULL.

  p释放了以后,仍然指向这片内存,就是迷途指针

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  三十三 指针代码实践

  1、 记事本能够通过如下两行代码编译,但是VS则不能通过编译,

  因为指针变量p没有初始化。

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  2、 通过指针的方式交换两个变量的值

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  3、 把a作为一个实参传递给函数change,并不能改变实参a的值。

  通过传值的方式传递给change函数的形参,将会在栈区中开辟一段内存,

  (单向传递,只能接受)。

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  传递a的地址给changep函数,在函数中给形参重新赋值以后,实参的值发生改变。也不会开辟新的内存空间,(双向传递,既接受了地址,也能通过地址改变变量)。

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  4、 定义一个函数 没能实现交换两个变量的值(通过传值的方式,并没能实现交换的功能)

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  传入的是实参的地址和形参的地址并不相同,传入之后,仅仅是在栈区新开辟了两段内存,函数执行完后,并没能把值传递给实参,传值的方式是单向传递。

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  5、 通过传递地址的方式交换两个实参变量的值。

  这里的形参pa,pb分别和实参的两个参数一一对应指向同一块内存,

  改变了实参的值。(双向传递)

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

  6、如果创建指针没有进行初始化就会编译出错。

  创建指针t ,并没有初始化t,而是通过间接访问的方式把pa所指向的值付给了*t

  定义一个指针类型p,这个指针指向3行4列_定义一个指针类型p,这个指针指向3行4列的整型二维数组

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/91781.html

(0)
上一篇 2024年 5月 31日
下一篇 2024年 5月 31日

相关推荐

关注微信