به هر نوع متغیر از نوع اشارهگر میتوان هنگام اعلان آنها، مشابه سایر متغیرها، مقدار اولیه نیز نسبت داد. در این صورت مقدار اولیه مورد نظر باید یک آدرس باشد. پس اشارهگر NULL یا یک آدرس را به عنوان مقدار اولیه میپذیرد. برای مثال میتوان دستورهایی به صورت زیر نوشت.
int x ;
int *px = &x ;
اما نمیتوان متغیری را قبل از اینکه توصیف یا اعلان گردد در دستوری به کار برد. بنابراین مجموعه دستورهای زیر قابل قبول نیست.
int *px = &x ;
int x ;
همچنین میتوان اشارهگر را به صورت int *ptr = 0 ; مقداردهی اولیه کرد که برای مشخص ساختن بعضی شرایط خاص به کار برده میشود.
در حالت کلی، نسبت دادن مقدار صحیح به متغیر اشارهگر مفهوم ندارد. به هرحال، مثال اخیر حالت استثنایی در این مورد است که همان طور که گفتیم، برای مشخص ساختن بعضی شرایط خاص به کار میرود. در چنین مواردی توصیه میگردد که ثابت سمبولیکی مانند NULL را که معرف صفر باشد تعریف کرد و آن را به اشارهگر اختصاص داد. این روش تأکید میکند که اختصاص دادن صفر، معرف شرطی ویژه است.
مثال برنامهای به زبان C ممکن است تعاریف و عبارات زیر را شامل باشد.
# define NULL 0
float x , y ;
float *pr = NULL ;
در این مثال متغیرهای x و y به صورت متغیرهایی از نوع ممیز شناور و pr به صورت متغیر اشارهگر اعلان شده که مقداری ویژه بهعنوان مقدار اولیه به آن نسبت داده شده است. بنابراین استفاده از ثابت سمبولیک NULL نشان میدهد که این اختصاص مقدار اولیه، چیزی به غیر از اختصاص مقدار صحیح معمولی است. به هرحال در اغلب کامپایلرهای C ثابت سمبولیک NULL در چندین header file و بویژه در <stdio.h> تعریف شده است. پس اختصاص مقدار اولیه صفر یا NULL به یک اشارهگر همارز است، ولی NULL ترجیح داده میشود.