注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 [业内传闻]今天,7月25日..
 帮助

C:指针与结构


2007-12-03 23:00:09
 标签:程序 编程 C 指针   [推送到技术圈]

版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。
1.结构体指针
void date()
{
   
struct date
    {
       
int month;
       
int day;
       
int year;
    };

    
struct date today,*datePtr;
    datePtr=&today;

    datePtr->month=5;
    datePtr->day=21;
    datePtr->year=2008;

    printf(
"Today's date is %i/%i/%.2i\n",today.month,today.day,today.year%100);
    printf(
"Today's date is %i/%i/%.2i\n",datePtr->month,datePtr->day,datePtr->year%100);
}

struct date today;//声明一个结构体变量
struct date *datePtr;//声明一个结构体指针
datePtr=&today;//对指针赋值

//通过变量获得结构体成员
today.month
today.day
today.year

//通过指针获得结构体成员
datePtr->month
datePtr->day
datePtr->year

2.结构体中包含指针
void struct_ptrs()
{
   
struct intPtrs
    {
       
int *p1;
       
int *p2;
    };

    
struct intPtrs ptrs;
   
int i1=100,i2;

    ptrs.p1=&i1;
    ptrs.p2=&i2;
    *ptrs.p2=-97;

    printf(
"i1=%i,*ptrs.p1=%i\n",i1,*ptrs.p1);
    printf(
"i2=%i,*ptrs.p2=%i\n",i2,*ptrs.p2);
}

p1为结构体intPtrs中的一个整型变量,
ptrs.p1=&i1;//对p1赋值
*ptrs.p1//取出p1所指向的整型数的值

3.链表
struct linkedlist
{
   
int value;
   
struct linkedlist *next;
};

void traversal()
{
   
struct linkedlist n1,n2,n3;
   
struct linkedlist *listPtr;

    n1.value=1;
    n2.value=2;
    n3.value=3;
    n1.next=&n2;
    n2.next=&n3;
    n3.next=NULL;

    listPtr=&n1;

    
while(listPtr!=NULL){
      printf(
"%i\n",listPtr->value);
      listPtr=listPtr->next;
    }
}

本文出自 “子 孑” 博客,转载请与作者联系!





    文章评论
 
2007-12-04 10:03:30
指针这一块是比较难的 当初学的时候就没太学好 这次在复习一下

2007-12-08 19:41:15
这正是我想写的东西。。
你写得比我详细多了。嘎嘎。收藏了。

2007-12-08 20:22:37
你能不能就上面的例子讲下cout的用法?
我只知道cout<<''hell"<

2007-12-09 13:47:09
to守住每一天,
你的意思是,区别于C中的printf的用法?

2007-12-09 15:53:38
那当然..  

2007-12-09 16:04:40
to 守住每一天,
你可以查一下C++操作符重载

 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: