c++未初始化变量的错误的原理是什么

#include
using namespace std;
#define ok 0
struct linknode
{
int data;
linknode next;
};
typedef linknode linklist;
int initlist(linklist *L)
{
L = (linknode
)malloc(sizeof(linknode));
return ok;
}
int main()
{
linklist L;
initlist(L);
}
提示未初始化错误
#include
using namespace std;
#define ok 0
struct linknode
{
int data;
linknode *next;
};
typedef linknode linklist;
int initlist(linklist *L)
{
L = (linknode
)malloc(sizeof(linknode));
return ok;
}
int main()
{
linklist *L;
cout<<&L
initlist(L);
}
却不提示了,这个程序也没有初始化啊

就是说一个变量你只是声明了,但是并没有对他进行过赋值就去使用这个变量,这个时候这个变量里面的内容是不可确定,所以编译器就会有一个未初始化变量的警告,这个不会有错误吧,挺多是个警告

 cout<<&L//这个就是初始化