Output for the below program is :
dat : 18446721190124690902 892374
dat : 892374 892374
What is happening when I pass variable "a" as pointer ? I expected both functions to print same values.
#include <stdio.h>
void func(unsigned long long * dat) {
printf("dat : %llu %u \n",*dat,*dat);
}
void func1(unsigned long long dat) {
printf("dat : %llu %u \n",dat,dat);
}
int main(void)
{
unsigned int a;
a = 892374;
func((unsigned long long *) &a);
func1((unsigned long long) a);
return 0;
}