Professional Documents
Culture Documents
VY_pdf_3
VY_pdf_3
1
#include <iostream>
using namespace std;
int main( )
{ Çıktı : ?
char f[20]="DPU Bilgisayar";
int sayi[3]={1,2,3};
return 0;
}
2
#include <iostream>
using namespace std;
int main()
{
char p1[]="dpu"; // sonlandırıcı karakter ile toplam 4byte
//"dpu" hafızanın sadece okunabilen kısmına depolanır ancak kopyası yığın halinde de bulundurulur, Çıktı:
//burada içerikte değişiklik yapmamıza izin verilir, yani okunabilir ve yazılabilirdir.
//o yüzden tüm elemanlarına ulaşılabilir.
#include <iostream>
using namespace std;
int main()
{
char *p2 = "dpu"; //const char *p2 = "dpu"; demek daha uygun
//bu ifade sadece okunabilirdir, üzerinde değişiklik yapılamaz Çıktı:
//"dpu" hafızanın sadece okunabilen (read-only) kısmına depolanır. Kopyası bulunmaz.
//adres yazdırmak için (void*) kullanmalıyız
int *p3; //bir tamsayının adresinin tutan işaretçi
cout<<sizeof(p3)<<endl; //işaretçinin büyüklüğü (64bitlik sistemlerde 8byte)
cout<<sizeof(p2)<<endl; //işaretçinin büyüklüğü (64bitlik sistemlerde 8byte)
cout<<sizeof(*p2)<<endl; //p2nin gösterdiği dizideki ilk elamanın büyüklüğü
cout<<p2<<endl; //işaretçinin gösterdiği diziyi yazdır
cout<<*p2<<endl; //p2[0] ile aynı, 0 indisli eleman
cout<<*(p2+1)<<endl; //p2[1] ile aynı, 1 indisli eleman
//*(p2+2)='e'; //HATA! içerikte değişiklik yapılamaz, sadece okunabilir.
cout<< &p2 << endl << &p2+1 <<endl;
cout << &p3 << endl << &p3+1 << endl;
//p2 ve p3 işaretçilerinin adresleri
//64bit işlemcilerde sonraki işaretçi türden bağımsız olarak 8byte sonrasını işaret ediyor
cout<<(void*)(&p2[0])<<endl; //ilk elemanın adresini yazar
cout<<(void*)(&p2[1])<<endl; //ilk elemanın adresini yazar
return 0;
}
3
#include <iostream>
#include <string.h> //strlen()
//#include <cstring> //strlen()
using namespace std; Çıktı : ?
int main( )
{
char *p ="kutahya";
int index;
return 0;
}
//* Strlen() fonksiyonu, karakter dizisinin başlangıç adresini
parametre olarak alır. Bu adresten başlayarak sonlandırıcı
karakteri görene kadar tüm karakter sayısını bulur.
Çıktı:
4
//Büyük küçük harf değiştiren program //DEVAMI
#include <iostream>
#include <cstring> void degistir(char *cdizi,int n)
using namespace std; {
for(int j=0;j<n;j++)
void degistir(char *, int); {
if(cdizi[j]>96) //>90
int main() cdizi[j]=cdizi[j]-32;
{ else
char dizi[7]={'T','u','r','k','i','y','E’}; cdizi[j]=cdizi[j]+32;
}
degistir(dizi,strlen(dizi)); }
for(int i=0;i<7;i++)
cout<<dizi[i];
return 0; Çıktı:
}
5
// konu :işaretçi ile dinamik hafıza //DEVAMI
kullanımı(new, delete) int main()
{
#include <iostream> Dersler *ogrenci;
using namespace std; ogrenci = new Dersler; //temiz bir hafıza alanı
ayırıyoruz
struct Notlar
{ ogrenci->puan.vize=90; //(*ayse).puan.vize= 90;
int vize; şeklinde de yazabiliriz
};
cout<<"ogrenci ismini giriniz : ";
struct Dersler cin>> ogrenci->ogrenci_isim;
{
char ogrenci_isim[10]; cout<<"ogrencinin adi : "<<ogrenci->ogrenci_isim<<endl;
struct Notlar puan; cout<<"vizesi : "<<ogrenci->puan.vize<<endl;
};
delete ogrenci; //ayrılan hafızayı siliyoruz (Aslında
işaretçiyi siliyoruz)
return 0;
}