C Pointer

#include <stdio.h>
#include <stdlib.h>
 
int arraySum(int array[], const int n){
    int sum = 0, * ptr;
   
    int * const arrayEnd = array + n;
 
    printf("%p\n", array); // show 0028FEF8
    printf("%p\n", &array); // show 0028FEE0
 
    printf("------------------\n");
 
    for(ptr = array; ptr < arrayEnd; ++ptr)
         sum += *ptr;
   
 
    return sum;
}
 
 
int main(){
    int values[10] = { 3, 7, -9, 3, 6, -1, 7, 9, 1, -5 };
    // but here same address show 0028FEF8
    printf("%p\n",values); // show 0028FEF8
    printf("%p\n",&values); //show 0028FEF8
    printf("----------------------\n");
 
 
   // printf("%p\n", ptr);
 
 
    printf ("The sum is %i\n", arraySum (values, 10));
 
    return 0;
}

salam bu kodda əsas məqsədi başa düşmüşəm amma 1 az belə deyək oynadıgdan sonra kodnan belə 1 şey gördüm array və &array funksiyadan kənarda yəni main funksiyya daxilində eyni adresi gösdərir məsələn 0028FEF8 adresin(commentdə yazmışam) amma funksiyya daxilində (arraySum) fərqli məsələn array – 0028FEF8 &array – 0028FEE0 adreslərin gösdərillər bunun səbəbi nədi ? qabagcadan təşəkkürlər


Kateqoriya: Sual . . Qısa keçid.

Verilmiş cavablar və yazılan şərhlər (3 cavab var)

(20:57, 12/11/2016 ) #65937

Salam. bu çətin sualdı. Bunu tam başa düşmək biraz təcrübə tələb edir. Bacardığım qədər izah eləməyə çalışacam. Burda iki sual bir – birinin içindədir:

1) Niyə values və &values eyni ünvanı çap edir. Axı biri göstərici, digəri göstəriciyə göstəricidi(ikiqat göstərici)

2) Sizin sual – niyə main -də ünvanlar eynidir, arraySum -da isə fərqli.

2-yə cavab vermək üçün əvvəl 1 -i başa düşməliyik. C-də adi dəyişən , 1qat və 2 qat göstəricilər olur. Misal üçün :

  int x, *y, **z;

Əslində isə bunların 3-ü də tam ədəddir, sadəcə kompilyator bilir ki x-ə yazılan məlumata ancaq qiymət, y-ə yazılan məlumata ancaq ünvan, z-tə yazılan məlumata ünvanın ünvanı kimi yanaşmaq lazımdır. Normalda bu 3 dəyişən yaddaşda int x,y,z; kimi yadda saxlanılır və onların hər birində 5, 12, 234 v.s. kimi ədədlər yerləşir. Ünvanda öz növbəsində bir ədəddir, tam ədəd. Array C-də const pointer -dir. Yəni pointerdi, sadəcə istinad etdiyi ünvan dəyişə bilməz. Buna görə onun qiyməti ilə ünvanı üst-üstə düşür.

Keçək ikinci suala. burda diqqət eləsəz main -də value birbaşa çap olunur, amma arraysum -a parametr kimi ötürülür. Məsələ də elə bundadır. Funksiyaya ötürülən parametr əvvəlcə stekə yerləşdirilir. Funksiyanın daxilində ona ötürülən parametrin ünvanın çap eliyəndə o stekdəki ünvanı çap eliyir.

Cərgələrin yaddaşda yerləşməsi, funksiyaya parametr ötürülməsi, stek v.s. ilə daha ətraflı Programming from ground up kitabından məlumat əldə edə bilərsiniz.

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(23:34, 12/11/2016 ) #65940

Çox sağolun Əhməd müəllim izah üçün başa düşdüm hər dəfə kömək edirsiz təşəkkülər 1 də bu incə məqamlar kitablarda ən azınnan hələki oxuduğum kitabda yazılmır bunları mən necə örgənəcəm təcrübə etdikcə ya necə ?

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(19:13, 13/11/2016 ) #65970

Bunun üçün sistem proqramlaşdırmanı örgənmək lazımdır. Linux nüvə hakinq-dən başlaya bilərsiniz.

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

Bu suala aid öz sualım var:
Sual verin
Bu suala cavab vermək istəyirəm:
Cavab verin

Cavab verin


Cavab yazmaq üçün lütfən sağ sütundan və ya buradan hesaba daxil olun.

Üzvlər üçün giriş

Qeydiyyat

Elan qutusu

Son cavablar və şərhlər

Ramazan cavab verdi - wi fi parolunu deyismek isdeyirem (15 saat əvvəl)

Ramazan cavab verdi - Kompyuterdən Telefonu idarə etmək (15 saat əvvəl)

Ramazan cavab verdi - Envato Videohive prinsip Aparır, qəbul eləmir fayllarımı (15 saat əvvəl)

maxxam cavab verdi - Envato Videohive prinsip Aparır, qəbul eləmir fayllarımı (20 saat əvvəl)

niftaliyev cavab verdi - Nar mobile de 5550 ni nece deaktiv edim??? (1 gün əvvəl)

niftaliyev cavab verdi - Vördress üçün sürətli hosting (1 gün əvvəl)

Maqa cavab verdi - Kompyuterdən Telefonu idarə etmək (2 gün əvvəl)

Ramazan cavab verdi - Envato Faylları necə qebul edir elnen yoxsa sistemnən (2 gün əvvəl)

E. Hacı cavab verdi - AMAZON BLACK FRİDAY HAQQINDA MƏLUMATI OLAN VAR? (2 gün əvvəl)

E. Hacı cavab verdi - Envato Faylları necə qebul edir elnen yoxsa sistemnən (2 gün əvvəl)

Ramazan cavab verdi - Envato Faylları necə qebul edir elnen yoxsa sistemnən (2 gün əvvəl)

E. Hacı cavab verdi - Envato Faylları necə qebul edir elnen yoxsa sistemnən (2 gün əvvəl)

P_H_P cavab verdi - OnePlus 6 məsləhət (2 gün əvvəl)

E. Hacı cavab verdi - OnePlus 6 məsləhət (2 gün əvvəl)

E. Hacı cavab verdi - proqramlaşdırma üçün ingilis dilində bilik səviyəsi (2 gün əvvəl)

E. Hacı - 575 xal

Software Developer - 571 xal

Onar Alili - 526 xal

Dilsuz - 448 xal

Cabbarov Sübhan - 414 xal

Ruslan Butdayev - 328 xal

Namiq Bəndəli - 297 xal

U.Tarlan - 244 xal

Meherremoff - 234 xal

Bextiyar Azeroglu - 217 xal

Sistemə daxil olmuş 19568 sualdan 94%-dən çoxu cavablandırılmışdır.

Proyekt haqqında

E-Haci.net istehsalı. © 2010-2018