刷新指针,包含整数和字符

时间:2016-08-02 07:19:31

标签: c pointers integer character structure

我没有获得此计划的输出。 //指针和结构 我希望得到输出为1Jatin。但是使用结构刷新指针。我不能这样做。它作为int和float工作。但不是int和char。任何人请解决这个问题。

#include <stdio.h>

struct name{
    int a;
    char b;
};

int main(){
    struct name *ptr ,p;
    ptr = &p;
    printf("Enter integer:");
    scanf("%d", &(*ptr).a);
    printf("Enter name:");
    scanf("%s", &(*ptr).b);
    printf("Displaying:");
    printf("%d%s",(*ptr).a,(*ptr).b);

    return 0;
}

1 个答案:

答案 0 :(得分:2)

#include <stdio.h>

#define MAX_NAME_LENGTH 32

struct name{
    int a;
    char b[MAX_NAME_LENGTH];
};

int main(){
    struct name *ptr ,p;
    ptr = &p;
    printf("Enter integer:");
    scanf("%d", &ptr->a);
    printf("Enter name:");
    scanf("%s", ptr->b);
    printf("Displaying: ");
    printf("%d %s\n",ptr->a,ptr->b);

    return 0;
}

很多事情:

  1. 您可以让我们-> operator取消引用指向其成员的指针
  2. C-Strings是空终止的字符数组。这意味着b成员必须是一个足以存储名称字符+ null终结符('\0'0x000)的数组。