İşaretçi aritmetiği
#include <stdio.h>
int main() {
int a[]={2,4,6,8,10};
printf("a[0]: %u\n", &a[0]);
printf("a: %u\n", a);
printf("*a: %u\n", *a);
printf("a+1: %u\n", a+1);
printf("a+3: %u\n", a+3);
printf("a+30: %u\n", a+30);
return 0;}
a[0]: 3446333856
a: 3446333856
*a: 2
a+1: 3446333860
a+3: 3446333868
a+30: 3446333976
#include <stdio.h>
int main() {
int a[]={2,4,6,8,10};
int *p;
p=&a[0];
printf("p: %u\n", p);
printf("*p: %u\n", *p);
printf("(p+2): %u\n", p+2);
printf("*(p+2): %u\n", *(p+2));
printf("*p: %u\n", *p);
printf("*p+3: %u\n", *p+3);
return 0;}
p: 3689394928
*p: 2
(p+2): 3689394936
*(p+2): 6
*p: 2
*p+3: 5
#include <stdio.h>
int main() {
int a[]={2,4,6,8,10};
int *p;
p=a;
printf("p: %u\n", p);
printf("*p: %u\n", *p);
p++;
printf("(p+2): %u\n", p+2);
printf("*(p+2): %u\n", *(p+2));
p=p+3;
printf("*p: %u\n", *p);
printf("*p+3: %u\n", *p+3);
p--;
printf("p: %u\n", p);
printf("*p+5: %u\n", *p+5);
return 0;}
p: 3767688832
*p: 2
(p+2): 3767688844
*(p+2): 8
*p: 10
*p+3: 13
p: 3767688844
*p+5: 13
#include <stdio.h>
int main() {
int a[]={2,4,6,8,10,12,14,16,18,20};
int *p;
p=&a[5];
printf("p: %u\n", p);
printf("*p: %u\n", *p);
p=p-3;
printf("(p+2): %u\n", p+2);
printf("*(p+2): %u\n", *(p+2));
p=p+4;
printf("(p+2): %u\n", p+2);
printf("*(p+2): %u\n", *(p+2));
return 0;}
p: 3427837268
*p: 12
(p+2): 3427837264
*(p+2): 10
(p+2): 3427837280
*(p+2): 18
#include <stdio.h>
int main() {
int a[]={2,4,6,8,10,12,14,16,18,20};
int *p,*q;
p=a;
q=&a[2];
printf("p==q: %u\n", p==q);
printf("p>q: %u\n", p>q);
printf("p<q: %u\n", p<q);
return 0;}
#include <stdio.h>
int main() {
int a[]={2,4,6,8,10,12,14,16,18,20};
int *p;
int boyut;
boyut=sizeof(a)/sizeof(int);
for(p=a; p<a+boyut; p++)
printf("%d ",*p);
return 0;}
2 4 6 8 10 12 14 16 18 20
#include <stdio.h>
int main() {
int a[]={2,4,6,8,10,12,14,16,18,20};
int *p;
int boyut;
int toplam=0;
boyut=sizeof(a)/sizeof(int);
for(p=a; p<a+boyut; p++)
toplam += *p;
printf("dizinin elemanlarinin toplami: %d\n", toplam);
toplam=0;
for(p=a; p <= &a[9]; p++)
toplam += *p;
printf("dizinin elemanlarinin toplami: %d", toplam);
return 0;}
dizinin elemanlarinin toplami: 110
dizinin elemanlarinin toplami: 110
#include <stdio.h>
int main() {
int a[]={2,4,6,8,10,12,14,16,18,20};
int *p;
int boyut,i;
boyut=sizeof(a)/sizeof(int);
for(p=a+boyut-3; p>=a; p--)
*(p+2)=*p;
for(i=0;i<boyut;i++)
printf("%d ",*(a+i));
return 0;}
#include <stdio.h>
int main() {
int a[]={2,4,6,8,10,12,14,16,18,20};
int *p;
int boyut,i;
boyut=sizeof(a)/sizeof(int);
for(p=a+boyut-3; p>=a; p--)
*(p+2)=*p;
for(i=0;i<boyut;i++)
printf("%d ",*(a+i));
return 0;}
#include <stdio.h>
#define N 10
int main() {
int a[10]={2,4,6,8,10,12,14,20};
int i=2;
a[i++]=100;
for(i=0;i<N;i++)
printf("%d ",a[i]);
printf("\n");
i=5;
a[++i]=200;
for(i=0;i<N;i++)
printf("%d ",a[i]);
return 0;
}
2 4 100 8 10 12 14 20 0 0
2 4 100 8 10 12 200 20 0 0
#include <stdio.h>
#define N 10
int main() {
int a[N]={2,4,6,8,10,12,14,20};
int *p;
p=&a[3];
printf("*p: %d\n",*p);
printf("*p++: %d\n",*p++);
printf("*p: %d\n",*p);
printf("(*p)++: %d\n",(*p)++);
printf("*p: %d\n",*p);
printf("*++p: %d\n",*++p);
printf("*p: %d\n",*p);
printf("++*p: %d\n",++*p);
printf("*p: %d\n",*p);
for(p=a;p<a+N;p++)
printf("%d ",*p);
printf("\n");
p=a;
while(p< a+N)
printf("%d ",*p++);
return 0;
}
*p: 8
*p++: 8
*p: 10
(*p)++: 10
*p: 11
*++p: 12
*p: 12
++*p: 13
*p: 13
2 4 6 8 11 13 14 20 0 0
2 4 6 8 11 13 14 20 0 0
#include <stdio.h>
#define N 10
int main() {
int a[10]={2,4,6,8,10,12,14,20};
int i, *p;
for(i=0;i<N;i++)
printf("%d ",a[i]);
printf("\n");
for(i=N-1;i>=0;i--)
printf("%d ",a[i]);
printf("\n");
for(p=a;p<a+N;p++)
printf("%d ",*p);
printf("\n");
for(p=a+N-1;p>=a;p--)
printf("%d ",*p);
return 0;
}
2 4 6 8 10 12 14 20 0 0
0 0 20 14 12 10 8 6 4 2
2 4 6 8 10 12 14 20 0 0
0 0 20 14 12 10 8 6 4 2
#include <stdio.h>
int eb(int a[], int boyut){
int maks,i;
maks=a[0];
for(i=1;i<boyut;i++)
if(a[i]>maks)
maks=a[i];
return maks;
}
int main() {
int a[]={2,4,6,8,10,500,14,20,100,200,20};
int n;
n=sizeof(a)/sizeof(int);
printf("en buyuk eleman: %d", eb(a, n));
return 0;
}
#include <stdio.h>
int eb(int x[], int boyut){
int maks,*p;
maks=*x;
for(p=x+1;p<x+boyut;p++)
if(*p>maks)
maks=*p;
return maks;
}
int main() {
int a[]={2,4,6,8,10,500,14,20,100,200,20};
int n;
n=sizeof(a)/sizeof(int);
printf("en buyuk eleman: %d", eb(a, n));
return 0;
}
#include <stdio.h>
int eb(int *x, int boyut){
int maks,*p;
maks=*x;
for(p=x+1;p<x+boyut;p++)
if(*p>maks)
maks=*p;
return maks;
}
int main() {
int a[]={2,4,6,8,10,500,14,20,100,200,20};
int n;
n=sizeof(a)/sizeof(int);
printf("en buyuk eleman: %d", eb(a, n));
return 0;
}
#include <stdio.h>
void temizle(int *x, int n){
int *p;
for(p=x;p<x+n;p++)
*p=0;
}
int main() {
int a[]={2,4,6,8,10,500,14,20,100,200,20};
int n, *isaretci;
n=sizeof(a)/sizeof(int);
for(isaretci=a; isaretci<a+n;isaretci++)
printf("%d ", *isaretci);
printf("\n");
temizle(a, n);
for(isaretci=a; isaretci<a+n;isaretci++)
printf("%d ", *isaretci);
return 0;
}
2 4 6 8 10 500 14 20 100 200 20
0 0 0 0 0 0 0 0 0 0 0
#include <stdio.h>
#define N 10
int main() {
int a[N]={2,4,6,8,10,500};
int toplam=0, *p, i;
p=a;
for(i=0;i<N;i++)
toplam += p[i];
printf("toplam1: %d\n",toplam);
toplam=0;
for(i=0;i<N;i++)
toplam += *(p+i);
printf("toplam2: %d\n",toplam);
return 0;
}
toplam1: 530
toplam2: 530
#include <stdio.h>
int main() {
int a[2][3]={{2, 4, 6},
{8, 10, 12}};
int i, j;
for(i=0;i<2;i++){
for(j=0;j<3;j++)
printf("%3d ",a[i][j]);
printf("\n");
}
return 0;
}
#include <stdio.h>
int main() {
int a[2][3]={{2, 4, 6},
{8, 10, 12}};
int i, j;
for(i=0;i<2;i++){
for(j=0;j<3;j++)
printf("%3d ",a[i][j]);
printf("\n");
}
printf("\n");
for(i=0;i<2;i++){
for(j=0;j<3;j++)
printf("%u ",&a[i][j]);
printf("\n");
}
return 0;
}
2 4 6
8 10 12
3570918592 3570918596 3570918600
3570918604 3570918608 3570918612
#include <stdio.h>
int main() {
int a[2][3]={{2, 4, 6},
{8, 10, 12}};
int i, j, *p;
for(i=0;i<2;i++){
for(j=0;j<3;j++)
printf("%3d ",a[i][j]);
printf("\n");
}
printf("\n");
for(i=0;i<2;i++){
for(j=0;j<3;j++)
printf("%u ",&a[i][j]);
printf("\n");
}
printf("\n");
for(p=&a[0][0];p<&a[0][0]+6;p++)
printf("%d ",*p);
printf("\n");
for(p=&a[0][0];p<=&a[1][2];p++)
printf("%d ",*p);
return 0;
}
2 4 6
8 10 12
3365770016 3365770020 3365770024
3365770028 3365770032 3365770036
2 4 6 8 10 12
2 4 6 8 10 12
#include <stdio.h>
int main() {
int a[2][3]={{2, 4, 6},
{8, 10, 12}};
printf("a: %u\n",a);
printf("a: %u",a+1);
return 0;
}
a: 4086037488
a: 4086037500
#include <stdio.h>
int main() {
int a[2][3]={{2, 4, 6},
{8, 10, 12}};
int i, j;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
a[i][j]=0;
for(i=0;i<2;i++){
for(j=0;j<3;j++)
printf("%d ", a[i][j]);
printf("\n");
}
return 0;
}
#include <stdio.h>
int main() {
int a[2][3]={{2, 4, 6},
{8, 10, 12}};
int i, j;
int *p;
for(p=&a[0][0];p<=&a[1][2];p++)
*p=0;
for(i=0;i<2;i++){
for(j=0;j<3;j++)
printf("%d ", a[i][j]);
printf("\n");
}
return 0;
}
#include <stdio.h>
int eb(int x[][3], int n){
int i, j;
int maks;
maks=x[0][0];
for(i=0;i<n;i++){
for(j=0;j<3;j++)
if(x[i][j]>maks)
maks=x[i][j];
}
return maks;
}
int main() {
int a[2][3]={{2, 4, 30},
{8, 10, 25}};
int en_buyuk;
en_buyuk=eb(a, 2);
printf("en buyuk: %d",en_buyuk);
return 0;
}
#include <stdio.h>
int eb(int *a, int n){
int maks, *p;
maks=*a;
for(p=a+1; p<a+n;p++){
if(*p>maks)
maks=*p;
}
return maks;
}
int main() {
int a[2][3]={{2, 4, 30},
{8, 40, 25}};
int en_buyuk;
en_buyuk=eb(&a[0][0], 6);
printf("en buyuk: %d",en_buyuk);
return 0;
}
#include <stdio.h>
int main() {
int a[2][3]={{2, 4, 30},
{8, 40, 25}};
printf("a: %u\n",a);
printf("a[0]: %u\n",a[0]);
printf("a[1]: %u\n",a[1]);
printf("a[0]+1: %u\n",a[0]+1);
printf("a: %u\n",a+1);
return 0;
}
a: 3779957712
a[0]: 3779957712
a[1]: 3779957724
a[0]+1: 3779957716
a: 3779957724
#include <stdio.h>
int main() {
int a[2][3]={{2, 4, 16},
{8, 20, 12}};
int (*p)[3];
int *q;
printf("a: %u\n", a);
printf("a+1: %u\n", a+1);
printf("*a: %u\n", *a);
printf("*(a+1): %u\n", *(a+1));
printf("**a: %u\n", **a);
printf("**(a+1): %u\n", **(a+1));
printf("(*a)[1]: %u\n", (*a)[1]);
printf("(*(a+1))[2]: %u\n", (*(a+1))[2]);
p=a;
printf("p: %u\n", p);
printf("p+1: %u\n", p+1);
for(p=a;p<a+2;p++)
for(q=*p; q<*p+3;q++)
printf("%d ",*q);
return 0;
}
a: 3253873936
a+1: 3253873948
*a: 3253873936
*(a+1): 3253873948
**a: 2
**(a+1): 8
(*a)[1]: 4
(*(a+1))[2]: 12
p: 3253873936
p+1: 3253873948
2 4 16 8 20 12