Можно ли запустить этот код, хотя я пытаюсь изменить типы данных? - PullRequest
0 голосов
/ 16 октября 2018

Можно ли запустить без отладки?Код не скомпилируется, потому что я пытаюсь преобразовать char в int и наоборот.Я просто ищу решение, которое позволило бы моему символу стать int и так далее.

#include "stdafx.h"
#include <stdio.h>

int main()
{
    int i;
    char char_array[5] = { 'a', 'b', 'c', 'd', 'e' };
    int int_array[5] = { 1, 2, 3, 4, 5 };

    char *char_pointer;
    int *int_pointer;

    char_pointer = int_array;       //The char_pointer and int _pointer
    int_pointer = char_array;       //point to incompatible data types

    for (i = 0; i < 5; i++) {       //Iterate through the int array with the int_pointer
        printf("[integer pointer] points to %p, which contains the char '%c'\n", int_pointer, *int_pointer);
        int_pointer = int_pointer + 1;
    }

    for (i = 0; i < 5; i++) {       //Iterate through the char array with the char_pointer
        printf("[char pointer] points to %p, which contains the integer %d\n", char_pointer, *char_pointer);
        char_pointer = char_pointer + 1;
    }
    getchar();
    return 0;
}

1 Ответ

0 голосов
/ 17 октября 2018

Оказывается, я могу использовать тип данных для типа данных указателя.Я включу обновленный код с ревизиями.

int main()
{
    int i;

    char char_array[5] = { 'a', 'b', 'c', 'd', 'e' };
    int int_array[5] = { 1, 2, 3, 4, 5 };

    char *char_pointer;
    int *int_pointer;

    char_pointer = (char *) int_array;      //Typecast into the
    int_pointer = (int *) char_array;       //pointer's data type

    for (i = 0; i < 5; i++) {       //Iterate through the int array with the int_pointer
        printf("[integer pointer] points to %p, which contains the char '%c'\n", int_pointer, *int_pointer);
        int_pointer =(int *) ((char *) int_pointer + 1);
    }

    for (i = 0; i < 5; i++) {       //Iterate through the char array with the char_pointer
        printf("[char pointer] points to %p, which contains the integer %d\n", char_pointer, *char_pointer);
        char_pointer = (char *) ((int *)char_pointer + 1);
    }
    getchar();
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...