Показать сообщение отдельно
Старый 01.12.2014, 20:04   #1 (permalink)
Sopel
Человек
 
Регистрация: 19.11.2010
Сообщений: 882
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 164
По умолчанию Указатели в C

Доброе время суток. У меня вопрос такой:
Вот код. Компилировал в visual studio 2012. Почему в этом месте появляется такая вот борода? (В другом компиляторе "Code::Blocks" эта борода обращается в нули)
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int *a, b;
float *x, y = 3.5;
double *m, n;
printf("a=%p\tb=%p\tx=%p\ty=%p\tm=%p\tn=%p\n",&a,& b,&x,&y,&m,&n);
a = &b;
printf(" Enter b = ");
scanf("%d", &b);
x = &y;
printf(" a = %p\tb = %d\n", a, b);
b -= y;
printf(" a = %p\t*a = %d\tb = %d\n", a, *a, b);
m = (double*)a;
printf(" a = %p\tm = %p\n", a, m);
m = &n;
printf(" n = %p\tm = %p\n", &n, m);
n = 5.5;
*m+=2;
printf(" n = %lf\tn = %p\tm = %p\n", n, &n, m);
*m = (double)*a - n + (double)*x;
printf(" m = %p\t*m = %lf\n", m, *m);
*m -= 2;
printf(" n = %lf n = %p m = %lf *(m+2) = %lf\n", n, &n, *m, *(m+2));
printf("a=%d\tb=%d\tx=%f\ty=%lf\tm=%lf\tn=%lf\n",* a,b,*x,y,*m,n);
system("pause");
return 0;
}
Изображения
 
Sopel вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070