#include "stdafx.h"
#include <stdio.h>
struct s
{
char *st;
struct s *sp;
};
struct s *p1,*p2;
void swap(struct s *p1,struct s *p2);
int main()
{
int i;
struct s *p[3];
static struct s a[]={
{"abc",a+1},{"def",a+2},{"ghi",a}
};
for(i=0;i<3;i++)
{
p[i]=a[i].sp;
}
swap(*p,a);
printf("%s %s %s\n",p[0]->st,(*p)->st,(*p)->sp->st);
return 0;
}
void swap(struct s *p1,struct s *p2)
{
char *temp;
temp = p1->st;
p1->st = p2->st;
p2->st = temp;
}
該程序輸出爲abc,abc,ghi。我的疑問是p [0] - > st,(* p) - > st,(* p) - > sp-> st輸出是什麼。我們沒有用abc或ghi初始化st。它如何輸出字符串?c中的字符串和結構
p [0]和* p基本上是相同的東西。 – 2011-08-10 17:20:02
你是什麼意思,你沒有初始化'st'? –