Lenguaje C: cómo escribir una función para cambiar el valor del parámetro de puntero pasado

 #include<stdio.h>
 int source =1;
 int* cope_adress(int *a)
 {
    
    
    a=&source;
 }
 int main()
 {
    
    
     int b=2;
     int *purposes;
     printf("source  address  is  %p\n",&source);
     purposes=&b;
     cope_adress(purposes);
     printf("cope_adress  is  %p\n",purposes);
 
 }
*************************************
*************************************
book@xxx:~/work$ g++ myname.c 
book@xxx:~/work$ ./a.out
source  address  is  0x601040
cope_adress  is  0x7ffdad9a7b7c
 #include<stdio.h>
 int source =1; 
 int* cope_adress(int **a)
 {
    
    
    *a=&source;
 }
 int main()
 {
    
    
     int b=2;
     int **purposes;
     printf("source  address  is  %p\n",&source);
     int *myb=&b;
     purposes=&myb;
     cope_adress(purposes);
     printf("cope_adress  is  %p\n",*purposes);
 
 }
*************************************
*************************************
book@xxx:~/work$ gcc 1.c
book@xxx:~/work$ ./a.out
source  address  is  0x601040
cope_adress  is  0x601040

Parece que solo el parámetro de función es la dirección de la variable utilizada en el cuerpo de la función que se puede asignar con éxito.

Supongo que te gusta

Origin blog.csdn.net/aningxiaoxixi/article/details/113576606
Recomendado
Clasificación