【原创】C语言中如何判断指针已经指向了数组的末尾?
问题背景:
1、如题所示,传统遍历数组的话,我们肯定是需要随时携带数组的长度参数以达到遍历数组的目的;
2、注意本文作者仅仅只是演示如何只借助指针来实现遍历数组,而无需携带数组长度参数,两种方法并不冲突;
解决方案:
#include <stdio.h> #include <stdlib.h> #include <string.h> #define SIZE 3 struct book { char *name; int number; }; typedef struct book Book; void showBook(Book *pbook, Book *pbook2); int main() { Book *pbook; Book data[SIZE]; int i; for(i = 0; i < SIZE; i++) { data[i].name = (char*)malloc(sizeof(char)); printf("请输入第%d套书籍的名称:", i+1); scanf("%s", data[i].name); printf("请输入第%d套书籍的数量:", i+1); scanf("%d", &data[i].number); } puts("********打印书籍列表*******"); showBook(data, data + sizeof(data)/sizeof(data[0])); return 0; } void showBook(Book *pbook, Book *pbook2) { int j = 1; while(1) { printf("第%d套书的名称和数量分别是: %8s (共%d本)\n", j, pbook->name, pbook->number); pbook++; j++; if(pbook >= pbook2) break; } }
版权声明:除非注明,本文由( blogdaren )原创,转载请保留文章出处。
发表评论: