programlamaya başlamak için en ideal dildir. basittir, sadedir, dümdüz bir dildir. ayrıca öğrenildiğinde en azından makine mühendisliği açısından kullanılacak diğer software programları için oldukça iyi bir temel de atılmış olur, örneğin matlab. hatta üniversitede c öğreten hocamız "fortran olmasaydı, c ile başlanılsaydı bu işe dünya şu an bambaşka bir yerde olurdu, baya baya dizilerdeki future earth falan gibi olabilirdi" demişti, öyle bir dil işte
dilin kendisinde dangling pointer'a davet çıkaran bir hatası bulunmaktadır. gerçi hata demek ne kadar mantıklı bilemedim. ama tehlikeli bir açıktır. ancak bu tamamen bilinçsiz yazılımcıdan kaynaklıdır.
elinizde bir pointer var. bu pointer bir değişkene atanıyor. bir başka pointera daha sahipsiniz. bu diğer pointer, az önce bahsedilen pointer'a atanıyor. yani iki pointer da aynı adrese bakıyor. bu nedenden dolayı da segmentation fault hatası ortaya çıkıyor ki bu da buffer overflow'a davet çıkararak güvenlik riski oluşturuyor.
dangling pointer'a yakalanırsanız "warning: function returns address of local variable" hatasını alırsınız.
kesinlikle eğitime bu dille başlamak doğru değildir. çünkü oldukça karmaşık ve kompleks bir yapıdadır. doğrudan bellekle sıkı fıkı olunan bir dildir. ve object oriented bir dil olmadığı için pointer'ı oturur kendin hazırlarsın. data structures oturur hazırlar ve byte byte bit bit ilerlersin istersen adreslerde.
gerçekten class yapısının bulunmaması da koddaki hataların bulunmasını zorlaştırdığı gibi okunmasını da zorlaştırır. belki header ile falan bunu önüne geçer fonksiyonlar ile rahatlarsın, ama bir c++/java/c#/delphi/phyton gibi dillerdeki rahatlığı bulamazsın.
ha bunun bir de assembly olanı var. her şeyin atası amk delisi.
evet birçok dile gore zor dildir başlangıç için. ama abartıldığı kadar değildir. yeni başlayan bir insan oturup ilk haftadan pointerlara dalmıyor. klasik temel kavramları öğrenene kadar zaten geçiyor belli bir sure. bana gore hiç programlama bilmeyen bir insanın da oturup direk object oriented öğrenmesine gerekte yok zaten.
java yazıyorum ama c/c++ ın bendeki yeri her zaman farklıdır.
si si pılas pılas varken ne c si arkadaşlar ce dediğin ingilizin amerikalının israillinin he birde konaminin oyunudur. bir de bunun see sharp i var keskin gör demek ingilizce direk ilimünatinin gözü. töbe bismillah.
C geleneksel dil olmak üzere algoritma gelistirmek icin kullanilabilir . Başlangıç için ideal olabilir fakat günümüz yazılım dünyasında oop olmadan kodlama yapmak makul(mümkün) degildir. Baslamak icin şu dil iyidir bu dil şöyledir demeyin direk java ögrenin malum open source .
algoritma mantığının insanın düşünce şeklini düzenlediğini, iyileştirdiğini düşünen biri olarak, özel olarak c olmasa bile, bir algoritma dersinin eğitim programında olması gerektiğini düşünüyorum. üniversitelerde "aaa hadi o kod parçasını buraya bağlayalım ihihihihi" diyemeyeceklerine göre, bence temel bir c dersi üniversitelerde önemlidir.
mesela bu ders eleştirileceğine makinecilere, elektronikçilere okutulan edebiyat dersi eleştirilebilir.
java, c#, php gibi piyasanın en popüler programlama dilleri c tabanlı olduğundan, evvela problem çözüm mantığını benimsemek ve algoritma gerçeklemek için c dilinin öğretilmesi esasen mantıklıdır. Devamında oop mantığı öğretilir ve diğer dilleri kullanmak artık daha da kolaydır.
programlamaya başladığım dildir. basit değildir ama başlangıç için en uygun dil olduğunu düşünüyorum. yaklaşık 45 yıl önce geliştirilmiş bir dil, işin temeline yakın bir yerden başlamak gibi bence. c yi temel düzeyde öğrenip diğer dillere geçmek en mantıklısıdır bence.
Çok eski ve sağlam dillerden, yapısal programlama öğrenmek için uygun dillerden bir tanesidir. Öğrenmesi gerçekten basit sayılabilir ancak nesne tabanlı programlama tarzı işlere yönelmek istediğinizde diğer dillere geçmeniz gerektirecektir.
Özellikle de pointer ya da ram'de yer ayırma gibi alanları daha aktif kodladığınız için (bir süre sonra başka dile geçince amelelik diyebilirsiniz) mantığını kavratmak konusunda faydalıdır.