sanguanko 发表于 2009-10-29 17:07

一个简单的C语言程序

#include "stdio.h"
char temp[]="bbbb";
main()
{
void sub(char *p);
char p1[]="aaaa";
printf("%s\n",p1);
sub(p1);
printf("%s\n",p1);
}
void sub(char *p)
{
p=temp;
printf("%s\n",p);
}
在主程序中第二次printf("%s\n",p1); 为什么不输出bbbb呢?让大家见笑了,谢谢

不会游泳鱼 发表于 2009-10-29 19:34

小心使用指针..不过这些概念我已经忘得7788了....

盼望 发表于 2009-11-17 11:54

#include "stdio.h"
char temp[]="bbbb";
main()
{
void sub(char **p);
char p1[]="aaaa";
printf("%s\n",p1);
sub(&p1);
printf("%s\n",p1);
}
void sub(char **p)
{
*p=temp;
printf("%s\n",*p);
}

true1064 发表于 2009-12-5 21:59

回复 1# sanguanko
调用sub(p1)时,实参P1是复制传入的

Jacksonger 发表于 2009-12-18 13:51

数组名是数组的首地址,你只是把地址p1给了*p,p1相当于指针常量,常地址!
页: [1]
查看完整版本: 一个简单的C语言程序