Merhaba, tekrar hoş geldiniz.
Yeni bir bölümdeyiz.
Bu bölümde, şunları yapacağız karakter dizileri hakkında konuşun.
Muhtemelen beni şöyle derken duymuşsunuzdur sınıf boyunca dizgi kelimesini oldukça
fazla kullandınız ve biraz kafası karışmış olabilir.
Bir dize aslında sadece bir kelimedir.
Bu kapalı bir şey çift tırnak içinde.
Nasıl yapabileceğimiz hakkında konuşacağız dizeleri karakter dizilerinde depolar.
Bu noktaya kadar, biz tek bir karaktere, char veri tipine oldukça
aşinadır veya "care" veri türü, nasıl isterseniz telaffuz etmek için. Bunun ne olduğunu biliyoruz ama kelimeler hakkında pek
bir şey öğrenmedik.
Tek bir karakter atamak için bir char değişkeni olduğunda,
karakter bir tek tırnak işareti çifti.
Buna aşinayız.
Bu konuda
her şeyi öğrendik. Bu örnekte artı işareti eşittir artı tek tırnak içinde.
Burada önemli olan şey tek tırnak işaretidir.
Ayrıca öğrendiniz ki tek tırnak ve çift tırnak
arasında yapılan bir ayrımdır.
Yani artı işareti değişkenini koyarsanız ve çift tırnak
içinde bir şey atarsınız ve artı işareti char, bu işe yaramayacak, çünkü
yalnızca tek bir karakterlerini char veri türüne dönüştürür.
Bir dize sabiti veya dize değişmezi bir çift çift tırnak arasındaki karakter
veya sembol dizisidir.
Yani şimdi çift tırnaklar yeni bir oyun gelecek.
Bu ikili arasındaki herhangi bir şey tırnak işaretleri derleyici tarafından
bir dize olarak yorumlanır.
Ve bu yüzden gerçekten alfanümerik karakterler, özel karakterler
olabilir ancak bunlar genellikle kelimeler uydurur, bunu bir tür metin olarak
düşünebilirsiniz.
Boşluklarınız olabilir.
Ama her şey çift tırnak işaretleri bir dize değişmezidir.
Her gösterdiğinizde printf fonksiyonunu kullanarak
bir mesaj oluştururken mesajı bir dize sabiti olarak.
printf'i hatırlayın, ilk argüman içine bazı metinler koyuyoruz ve bazı biçim
belirleyicilerimiz var.
Bu bir dizi ünsüzü.
Dize terimini de duyarsınız aynı şey.
Yani print f this is a string diyoruz bu çift tırnak arasındaki
her şey bir dize sabitidir ve bunu bir veya iki satıra koyabiliriz.
Ayrıca şunları yapabileceğinizi de fark ettiniz ters bölü n kaçış
dizilerine sahip yazdırma ifadelerine sahiptir. Şimdi Bu üçüncüsü oldukça havalı, birazdan
açıklayacağım.
Ama asıl nokta şu ki tek tırnak ve çift tırnak
arasındaki farkı anlamak için alıntılar ve içinde ne olduğu.
Çift tırnakla, iplerin var.
Tek tırnakla, karakterleriniz var.
İki tür sabit vardır.
Bu üçüncü örnek için, bu printf burada dört var ve sonra ters eğik
çizgi ve ardından tek tırnak var.
Eğer gerçekten istiyorsan tek tırnak işaretini çıktı olarak görüntülemek
için bu işaretten kaçmanız gerekir.
Ve özel kaçabilirsin karakterlerini ters eğik çizgi kullanarak kullanabilirsiniz.
Yani üçüncü örnekte Aslında yazdığınız dört
çift alıntının çıktısını alacağım, ve sonra bir çift tırnak daha.
Bu yüzden derleyici, açık bir dize sınırlayıcısı olarak önünde ters eğik çizgi
olmadan çift tırnak.
Diğer her seferinde bir çift bir dizenin başlangıcı ve sonu olduğunu alıntılayın,
ancak ya görüntülemek için önüne ters eğik çizgi koymanız
gerekir.
Ve derleyiciye şunu söyleyecektir aslında dizeyi sonlandırmıyor.
Bu bizim istediğimiz bir şey. veya o karakter olarak
kullanmak istediğimiz bir şey.
Ayrıca kaçış tuşunu kullanmanız gerekir dizisini de ters eğik
çizgi yapmak istiyorsanız, çünkü ters eğik çizgi bir kaçış dizisidir.
Yani ters eğik çizgiyi gördüğünüzde ters eğik çizgi, aslında bu ters eğik çizgiyi
bir printf işlevinde görüntülüyorsunuz.
Eğer başka bir yerde görürsen, ters eğik çizgiyi bir değişkene veya
nasıl kullanılıyorsa ona atıyorsunuz.
Ancak bir ters eğik çizgi bunu izledi başka bir ters eğik çizgi ile ters eğik çizgi
dizesinden kaçacaktır.
Ve yine, ters eğik çizgi ve bir dize her zaman bir kaçış dizisinin
başlangıcını işaret eder.
Yani bir tanesi tek başına gösterilmeyecek.
Bunlar özel karakterlerdir.
Yani çift tırnak içindeyken, özel karakterlerden kaçmak için ters eğik çizgileri
görebilirsiniz ve hatta ters eğik çizginin kendisi.
İşte dizginin bellekte nasıl olduğu.
Bellekteki bir dize her bir karakter burada bir
bit ile temsil edilir.
Ve eğer bir dizeniz varsa bu bir dize olarak adlandırılırsa, bunu
uzayda hafızada bir şey var.
Ayrıca şu adrese de dikkat etmelisiniz sondaki ters bölü sıfır boş sonlandırıcıdır
Bu konu hakkında konuşacağız.
Ama ikinci dizi için, yine, hafızanızdaki her şeyi görürsünüz.
Ters eğik çizgi n bile bellekte yeni bir satır olduğunu gösterir.
Ve sonra senin için doğru, sen alıntının hafızada olduğuna dikkat edin.
Ama ters eğik çizgi değil.
Çünkü ters eğik çizgi alıntıyı sınırlandırıyor.
Alıntıdan kaçıyor.
Hafızada böyle görünüyor.
Dizenin şu şekilde olduğunu fark etmelisiniz bellekte her zaman bu ters eğik
çizgi için en az bir bayt daha vardır sıfır, yani boş karakter.
Ayrıca şemaya benziyor alttaki yanlış.
"Sen" kelimesinin burada gösterilmediğini fark edeceksiniz yani çift tırnak işaretinden sonra, orada sen kelimesini
göremezsiniz. Sen olmalısın orada bir yerde
ve gerçekten orada bir yerde sadece alttaki ASCII değerlerini gösteriyor
ve sonra sadece gösteriyorum - göstermiyorum, ama sağdan önce sağda olursunuz.
İşte ben de bunu konuşmak istiyorum. bu null karakteri hakkında.
Bu özel bir karakter kod değeri sıfır olacak şekilde.
Her dizenin sonuna eklenir Böylece derleyici nerede bittiğini
ve ne zaman çalıştıracağınızı bilir.
Bu karakter şu şekilde bilinir null karakteri ve içine
sadece sıfır koymazsınız ters eğik çizgi sıfır koyabilirsiniz.
Ve bu da en sondaki önceki slayt.
Ve her yerde olabilir aslında hafızada.
Ve nerede olduğuna bağlı olarak bellekte, bir işlev gidecek ve
şunu görene kadar bakacaktır ters eğik çizgi sıfır ve bunu görüntüleyebilir veya
eğer farklı dize işlevleri kullanarak.
Bu çok önemli o boş karakter.
Bir dize her zaman sonlandırılır boş bir karakterle.
Yani bir dizenin uzunluğu her zaman dizedeki karakter sayısından
bir büyüktür.
Bu çok önemli hale gelecek karakter dizilerini kullandığımızda ve karakter dizisinin
boyutunu belirttiğimizde dizisinde dizi boyutunun her zaman dizinin boyutundan bir fazla
olması gerekecektir. Bu null karakter nedeniyle saklamak istediğiniz
karakter sayısı.
Ayrıca bir null kavramımız var çok detaylı konuşmadığımız
bir konu.
Genellikle devreye girer işaretçiler hakkında
konuştuğumuzda, ancak null karakterini null anahtar sözcüğü ile değiştirin.
Birinde null anahtar sözcüğü var kullanabileceğiniz include başlıkları.
Ve bu bir sembol hiçbir şeye referans vermeyen bir
bellek adresini temsil eder.
Yani bunu ne zaman kullanırsın işaretçileri kullandığınızda.
Boş karakter sadece bir dize sonlandırıcısı.
Null hakkında daha fazla konuşacağız. işaretçiler hakkında konuşun, ancak aralarındaki
farkı anladığınızdan emin olun. null karakteri ve null anahtar sözcüğü.
Ters eğik çizgi sıfır karakteri ekleyebilirsiniz 'yi bir dizenin sonuna
açıkça eklediğinizde iki dize oluşturacak ve Karakter dizilerini tanımlamaktan bahsederken
bunu nasıl yapacağınızı göstereceğim.
İşte bir örnek boş sonlandırıcı.
Burada bir print f var ve şöyle diyoruz karakteri ve ardından bir dizeyi
sonlandıran ters eğik çizgi sıfır.
Peki ne olacak? Bu programı derleyip
çalıştırdığınızda elde edeceğiniz
çıktı ilk satır karakter olacak ve ardından ters eğik çizgi o bir son olacak ve sadece ilk
kısmı dize görüntülenecektir.
Daha fazla olmayacak çünkü print bunun dizenin sonu
olduğunu düşünür.
Bu yüzden sadece karakteri yazdırır.
Çıktı, aşağıdakilerden sonra sona erecektir ilk iki kelime çünkü fonksiyon
bir kez çıktı vermeyi durdurur null karakterine ulaşır.
Yani ikinci ters eğik çizgi sıfır dizenin sonu, bu nedenle ters eğik çizgi görmeseniz
bile sıfır burada sondaki çift tırnak işaretinden hemen önce,
dize noktasından hemen sonra, Orada hala bir tane var, ama ona asla ulaşamazsınız.
Yani örtük bir null sonlandırıcı var dizenin ve printf'in sonunda nerede
biteceğini bilir.
Ve eğer bir tane daha eklerseniz, sadece ilkine kadar gösterecek.
Yani ilk null sonlandırıcı karakter dizisinde bulunan her
zaman dizenin sonunu işaret eder.
Bu yüzden bu boş karakterleri anlayın.
Bu sadece hızlı bir genel bakıştı bir dizenin ne olduğunu
tanımlamak ve dizeleri çift tırnak içindedir.
Ve ayrıca şunu da açıklamak istiyorum boş karakter.
Bir sonraki derste nasıl oluşturabileceğiniz açısından
karakter dizilerinin ne olduğunu anlamak dizeleri depolamak
için bu farklı bir değişken türü.
Teşekkür ederim.