指標和連結串列

露水上的青蛙發表於2013-08-21

#include "stdafx.h"
#include "stdio.h"
#include "string.h"

#define count 13
struct baby
{
 int position; //定義小夥伴的位置
 struct baby *next;
};

int _tmain(int argc, _TCHAR* argv[])
{
    struct baby gamer[count];

 //初始化小夥伴  組成一個迴圈連結串列
 for (int i=0;i<count-1;i++)
 {
  gamer[i].position=i+1;
  gamer[i].next=&gamer[i+1];
 }
 gamer[count-1].position=count;
 gamer[count-1].next=&gamer[0];

 //定義一個迴圈結構體指標
 struct baby *first;
 struct baby *temp;

 first=&gamer[0];

 while(first->next!=first)
 {
  temp=first;
  for (int i=1;i<6;i++)
  {
   temp=temp->next;
  }
  first=temp->next->next;
  temp->next=first;
 }
 printf("%d  ",first->position);
    printf("\n");
 //驗證一個指標賦值區別
 int a[]={31,22,13,42,59};
 int *p;//定義一個指標變數  p只能賦地址
 p=a;
 for (int i=0;i<5;i++)
 {
  printf("%d  ",*(p+i));//*(p+i)=*(a+i)=a[i]=*p++
 }
 printf("\n");
 /*for (int i=0;i<5;i++)
 {
  printf("%d  ",*p+i);  //此方法表示錯誤 *p+i=*p的值   +    i的值
 }*/
 getchar();
 return 0;
}

相關文章