#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
#include <string.h>
union umy{
char ch[2];
int i;
};
char *addnl(char *text);
void main(void)
{
union umy u_var;
char ch_t[5];
//***********************************
memset(ch_t, 5, '\0');
u_var.i = 0;
itoa(u_var.i, ch_t, 10);
addnl(ch_t);
printf(ch_t);
//***********************************
memset(ch_t, 5, '\0');
u_var.ch[0] = 'e';
u_var.ch[1] = 'r';
itoa(u_var.i, ch_t, 10);
addnl(ch_t);
printf(ch_t);
getchar();
}
char *addnl(char *text)
{
strcat(text, "\n");
return text;
}
char и память
Народ объясните тупому плиз одну фишку. Я новичёк ни как не въеду.
Код:
Пытаюсь разобраться с памятью и т.д. Написал програмку, если поле чар в объединение делаю длинной 1 и кладу символ 'e' в память, то при выводе инта получаю число 101 = 0х65 всё понятно, а когда делаю длинну поля 2 чара, и кладу 2 символа как в примере получаю числи 29285 как оно получаеться если если код первого символа 101 а второго 114?
Зарание благодарен.
Цитата:
Originally posted by Son!K
Хай алл.
Народ объясните тупому плиз одну фишку. Я новичёк ни как не въеду.
Пытаюсь разобраться с памятью и т.д. Написал програмку, если поле чар в объединение делаю длинной 1 и кладу символ 'e' в память, то при выводе инта получаю число 101 = 0х65 всё понятно, а когда делаю длинну поля 2 чара, и кладу 2 символа как в примере получаю числи 29285 как оно получаеться если если код первого символа 101 а второго 114?
Зарание благодарен.
Хай алл.
Народ объясните тупому плиз одну фишку. Я новичёк ни как не въеду.
Код:
union umy{
char ch[2];
int i;
};
char ch[2];
int i;
};
Пытаюсь разобраться с памятью и т.д. Написал програмку, если поле чар в объединение делаю длинной 1 и кладу символ 'e' в память, то при выводе инта получаю число 101 = 0х65 всё понятно, а когда делаю длинну поля 2 чара, и кладу 2 символа как в примере получаю числи 29285 как оно получаеться если если код первого символа 101 а второго 114?
Зарание благодарен.
Все ж просто! Первый байт твоего инта - 101, а второй - 114, таким образом 114*256+101=29285!!!!!
То есть типа твой массив чаров/байтов накладывается на инт, вот и результат! :)
Цитата:
Originally posted by mrhx
Все ж просто! Первый байт твоего инта - 101, а второй - 114, таким образом 114*256+101=29285!!!!!
То есть типа твой массив чаров/байтов накладывается на инт, вот и результат! :)
Все ж просто! Первый байт твоего инта - 101, а второй - 114, таким образом 114*256+101=29285!!!!!
То есть типа твой массив чаров/байтов накладывается на инт, вот и результат! :)
Спасиб, кому просто кому не очень ;)