Я изучаю программирование на C, и у меня есть простой вопрос об указателях ...
Я использовал следующий код, чтобы поиграться с указателями:
#include <stdio.h>
int main (int argc, const char * argv[]) {
int * c;
printf("%x\n",c);
return 0;
}
Когда я печатаю значениеC, я получаю обратно 0. Однако, когда я печатаю & c (то есть printf ("& x \ n", & c), я получаю адрес в памяти ...
Разве я не должен получать адресв памяти при печати указателя (т.е. printf ("% x \ n", c)?
--- EDIT ---
#include <stdio.h>
#include <stdlib.h>
int main (int argc, const char * argv[]) {
char * a = malloc(11);
printf("String please\n");
scanf("%s",a);
printf("%s",a);
}
Вопроспочему printf ("% s", a) возвращает строку вместо адреса, хранящегося в?
Разве я не должен использовать * a, чтобы следовать за указателем, а затем распечатать строку?