| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1145 人关注过本帖, 2 人收藏
标题:菜鸟指教 指针问题
只看楼主 加入收藏
heizhizhu007
Rank: 2
等 级:论坛游民
帖 子:50
专家分:10
注 册:2016-2-19
结帖率:92.31%
收藏(2)
 问题点数:0 回复次数:2 
菜鸟指教 指针问题
下面添加图书函数中 红色部分  *nth
第一问题:  为什么是 *nth 呢?  如果是  nth  会怎么样?
第二问题:  (*nth)++;   nth++  能帮我说明一下吗?  

刚看书的时候明白了点 现在想起来又迷糊了

#include<stdio.h>
#include<stdlib.h>

typedef struct BOOK
{
    char name[30];
    char auth[30];
    char publ[30];
    int borrowed;
}book;

int main()
{
    int user_choice;
    int num_total_book=0;

    book* book_list;

    printf("请输入书的数量:");
    scanf("%d",&user_choice);

    book_list=(book*)malloc(sizeof(book)*user_choice);
   
    while(1)
    {
        printf("******** 图 书 管 理 系 统 ********\n\n");
        printf("1.添 加 图 书\n");
        printf("2.搜 索 图 书\n");
        printf("3.出 租 图 书\n");
        printf("4.返 还 图 书\n");
        printf("5.退 出 系 统\n");

        printf("选择菜单:");
        scanf("%d",&user_choice);

        if(user_choice==1)
        {
            add_book(book_list,&num_total_book);    //添加图书
        }
        else if(user_choice==2)
        {
            //搜索图书
        }
        else if(user_choice==3)
        {
            //出租图书
        }
        else if(user_choice==4)
        {
            //返还图书
        }
        else if(user_choice==5)
        {
            break;
        }

    }
    free(book_list);
    return 0;
}
int add_book(book* book_list,int *nth)    //添加图书函数
{
    printf("图书名:");
    scanf("%s",book_list[*nth].name);

    printf("作者名:");
    scanf("%s",book_list[*nth].auth);

    printf("出版社:");
    scanf("%s",book_list[*nth].publ);

    book_list[*nth].borrowed=0;
    printf("添加成功\n");
    (*nth)++;
   
    return 0;
}
搜索更多相关主题的帖子: include borrowed 
2016-03-25 22:48
小白小白一只
Rank: 2
来 自:吉林大学
等 级:论坛游民
帖 子:16
专家分:41
注 册:2016-3-30
收藏
得分:0 
因为你函数中第二个参数就是指针,*nth 表示此指针指向的int 整形数据,可以用于数组元素的下角标,而nth 是指针,不能作为下角标,它只是一个地址~~
2016-03-30 14:34
ldsh304
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:242
专家分:755
注 册:2016-1-18
收藏
得分:0 
回复 楼主 heizhizhu007
int add_book(book* book_list,int *nth) 这个函数没声名
这个函数的传递是地址, 如果是nth,那么在执行完此函数后*nth不会发生变化
(*nth)++是将它所存储的变量的值加1, 而nth++表示此类型的下一个地址
2016-04-01 20:41
快速回复:菜鸟指教 指针问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018939 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved