در برنامه‌نویسی کامپیوتر (به : ) نتیجهٔ اجرای یک کد کامپیوتری است که این نتیجه متناسب با حالت فعلی برنامه و روال زبان برنامه‌نویسی نیست.
 رفتار نامشخص زمانی اتفاق می‌افتد که مترجم کد ( کامپایلر یا مفسر) فرضیات مشخصی داشته باشد اما این فرضیات در طول زمان اجرای کد ارضا نشوند.
 رفتار برخی از زبان‌های برنامه‌نویسی (به‌طور ویژه زبان‌های c وc++) درموارد خاصی نا مشخص است.
در استاندارداین زبان‌های برنامه‌نویسی معنای اعمال مشخصی تعریف نشده‌است و نتیجهٔ اجرای این اعمال نامشخص است.
 تنها خوبی رفتار نامشخص در زبان‌های برنامه‌نویسی c و c++ این است که این حالت کار کامپایلر را ساده‌تر می‌کند.
برای مثال زمانی که کامپایلر کد یک حلقه را کامپایل می‌کند لازم نیست نگران آن باشد که برای شمارندهٔ حلقه سرریز (overflow) رخ داده یا اینکه شمارنده منفی شده‌است. این کار می‌تواند سرعت اجرای کد حلقه را ۳۰ تا ۵۰ درصد افزایش دهد
واز این جهت برای بالابردن سرعت کامپایلر رفتارنامشخص می‌تواند مفید باشد.
 رفتار نامشخص می‌تواند یک مشکل بد برای کدهایی مانند وب سرورها و مرورگرهای وب باشد.
این رفتار می‌تواند مشکلات امنیتی برای وب سرورها به وجود آورد.
 رفتار نامشخص می‌تواند در شرایط زیر ایجاد شود:
 ۱. تلاش برای تغییر دادن literal یک رشته:
مثال: 
 
 
 ۲. تقسیم یک عدد صحیح بر صفر: 
 
 
 
 ۳. اعمال خاصی بر روی پوینترها:
 مثال: 
 
 
 ۴. خالی گذاشتن بخش return یک تابع که باید مقداری را برگرداند درحالی که از این مقداربازگردانده شده تابع دیگری استفاده می‌کند.
 .۵ایجاد تغییرات متوالی بر روی یک متغیر
 مثال:
{"title": "رفتار نامشخص", "link": "https://fa.wikipedia.org//w/index.php?title=%D8%B1%D9%81%D8%AA%D8%A7%D8%B1_%D9%86%D8%A7%D9%85%D8%B4%D8%AE%D8%B5&oldid=33591296", "language": "fa"}