结果为什么没变?传递的是地址,在fun函数里不是把那个地址空间的值改了么?

#include <stdio.h>

#include <string.h>

void  fun ( char  *s )

{  

    char  a[10];

    strcpy( a, "STRING" );

    s = a;

}

main()

{  

    char  *p="PROGRAM";

    fun( p );

    printf("%s\n",p); 

}程序运行后的输出结果是

 PROGRAM



慕粉3847971
浏览 1171回答 1
1回答

汉江怪人

虽然用了指针,但传进去到了函数里就变成形参里的指针了,改变那个指针的值不会对外面的指针造成影响,所以,要改指针的地址就应该传入指针的地址,也就是指针的指针才有效。。。
打开App,查看更多内容
随时随地看视频慕课网APP