#include <stdio.h>
void main() {
char letters[] = "sjdfhbakshfoweiuh23423";
char* p;
int size = sizeof(letters);
for (int i = 0; i < size; i++) {
p = letters[i];
printf("Address: %p \n", p);
}
for (int i = 0; i < size; i++) {
p = letters[i];
printf("Charachter: %c \n", p);
}
}
Не уверен, что происходит при компиляции, есть ошибка, которая говорит:
Warning C4047 '=': 'char *' differs in levels of
indirection from 'char'
Что я сделал не так?
Когда вы присваиваете letters[i]
p
, вы присваиваете char
char *
Вы пытаетесь назначить char
letters[i]
к char*
char* p;
в вашем цикле:
for (int i = 0; i < size; i++) {
p = letters[i];
printf("Address: %p \n", p);
}
Правильная версия будет выглядеть так:
#include <stdio.h>
void main() {
char letters[] = "sjdfhbakshfoweiuh23423";
char p;
int size = sizeof(letters);
for (int i = 0; i < size; i++) {
p = letters[i];
printf("Address: %p \n", p);
}
for (int i = 0; i < size; i++) {
p = letters[i];
printf("Charachter: %c \n", p);
}
}