Хорошо, поэтому прежде всего вы не указали ни одного указателя в этом коде.
указатель в C объявлен как:
[действительный тип] * [имя переменной], например:
double * age ;
Это создает определение указателя для двойной, но не выделяет никакой памяти в куче. Для того, чтобы инициализировать указатель необходимо выделить некоторую память, и вы должны сообщить компилятору, сколько, например:
age = malloc(sizeof(double)) ;
Thats получает достаточно места памяти, чтобы хранить ровно одну двойную ценность, независимо от того, что фактический размер аа double находится в системе, на которой вы строите это!
в своем коде вы должны разыменования указателя, прежде чем попытаться увеличить его, например:
*age++;
Звездочка перед именем переменной сообщает компилятору, чтобы дать вам доступ к фактическим данным, а ++ может выполнять свою работу. Если вы не разыгрываете вас, вы соблазняете, в лучшем случае повреждение данных или, в худшем случае, можете сбой системы.
Так что ваш код должен выглядеть примерно так:
void main(int argc, char *argv[]){
double * x ;
x = malloc(sizeof(double));
*x = 0
do{
*x++;
fprint("%d \n",*x)
}while{x* < 100}
}
Это не ясно из вашего поста, что ваша реальная цель состоит в том, то есть то, что это реальная проблема, которую вы пытаетесь решить, и где вам нужна помощь. –
Я пытаюсь понять указатели, создав такой скрипт, у меня должно получиться файл с номерами от 1 до 99, но каждая запись в файле была написана указателем переменной, а не просто напечатана на нем. – Averagedude
Я предлагаю работать с примерами в учебник или работу через онлайн-учебник, например, на http://www.tutorialspoint.com/cprogramming/c_pointers.htm. –