tttttt@@@@@@ 发表于 2023-6-9 23:22:11

这两种表示的解释

swap2(int *p,int *q)
    {int*t;
   t=p; p=q; q=t;
   cout<<"num1=”<<*p<<’,’<<”num2="<<*q<<’;’;
    }
    swap3(int *p,int *q)
    {intt;
   t=*p;*p=*q;*q=t;
   cout<<"num1=”<<*p<<’,’<<”num2="<<*q<<’;’;


巅峰老甲鱼1 发表于 2023-6-9 23:22:12

这两种代码都是用来交换两个整数变量的值,但是实现方式不同。

第一种代码 `swap2` 是使用指针的方式进行交换。该函数接受两个指针 `p` 和 `q` 作为参数,这两个指针分别指向两个整数变量的地址。在函数中,定义了一个指针 `t`,并将其指向 `p` 所指向的地址。然后将 `p` 指向 `q` 所指向的地址,将 `q` 指向 `t` 所指向的地址,这样就完成了 `p` 和 `q` 的交换。最后输出交换后的结果。

第二种代码 `swap3` 是直接使用变量的方式进行交换。该函数同样接受两个指针 `p` 和 `q` 作为参数,这两个指针分别指向两个整数变量的地址。在函数中,定义了一个整型变量 `t`,将 `p` 所指向的变量的值赋给 `t`,然后将 `p` 所指向的变量的值改为 `q` 所指向的变量的值,将 `q` 所指向的变量的值改为 `t`,这样就完成了 `p` 和 `q` 的交换。最后输出交换后的结果。

两种代码的区别在于交换的方式不同,第一种方式使用指针进行交换,第二种方式直接使用变量进行交换。在使用上,第一种方式更直观,但需要使用指针;第二种方式则更简单,但需要进行变量的赋值操作。

陶远航 发表于 2023-6-9 23:23:02

这两个函数都是交换两个整数指针指向的值,但是它们使用不同的方法进行交换。

函数“ swap2”使用一个指针变量“ t”,将它指向p所指向的整数,然后将p指向q所指向的整数,最后再将q指向t所指向的整数,完成对p和q所指向整数的交换。但是由于只是改变了指针的指向,并没有改变指针指向的值,所以这个函数实现的结果是不正确的。

函数“swap3”使用了一个整型变量“t”, 将其赋值为p所指向的整数,然后将p所指向的整数赋值为q所指向的整数,最后将q所指向的整数赋值为t所指向的整数,完成对p和q所指向的整数的交换。这种方式是正确的。
页: [1]
查看完整版本: 这两种表示的解释