دستور goto
این دستور ترتیب طبیعی اجرای برنامه را تغییر می‌دهد و کنترل را به قسمت دیگری از برنامه منتقل می‌کند. در واقع انتقال کنترل بدون شرط است و اصول برنامه‌سازی ساخت‌یافته در زبان C را لغو می‌کند. از این رو استفاده از آن توصیه نمی‌شود. در برخی زبانهای برنامه‌‌نویسی قدیمی مثل فورترن و بیسیک کاربرد گسترده‌ای دارد. شکل کلی این دستور به صورت زیر است.
goto label ;
که در آن label شناسه‌ای است که محل انتقال یا محل دستور بعدی‌ای را که باید اجرا شود نشان می‌دهد. بنابراین، محل انتقال کنترل یا جمله هدف باید label داشته باشد. پس از برچسب علامت دو نقطه به کار می‌رود. شکل آن به صورت زیر است.
label:  statement
مثال به قطعه برنامه زیر توجه کنید.
{
———
———
goto msg ;
———
———
}
msg:  printf(“\n please try again”) ;

اما گاهی استفاده از دستور goto مفید است و کار را ساده می‌کند. به عنوان مثال در صورتی که نیاز باشد کنترل برنامه ‌از درون دو حلقه تودرتو به خارج انتقال یابد معمولاً ساده‌‌ترین حالت استفاده از دستور goto خواهد بود.