Вы не предоставили нам достаточно информации о типе temp или о том, почему вы хотите это сделать, обычно объединять типы не имеет особого смысла.Однако, если temp является массивом char и вы хотите объединить их оба для какого-то полезного вывода, вы можете использовать sprintf:
int a = 10;
char b[10] = "apple";
char temp[50];
sprintf(temp, "%d %s", a, b);
/* 10 apple */
puts(temp);
%d
в sprintf используется для представления десятичного целого числа, в то время как%s
используется для представления строки с нулевым символом в конце.