Más contenido relacionado La actualidad más candente (20) Similar a Лекц 9(Заагч) (20) Más de Мөнхбаярын Цэцэнцэнгэл (9) Лекц 9(Заагч)4. Заагч төрөл
Заагч (pointer) гэдэг нь компьютерын санах
ойн нэгэн утгын заадаг объектыг хэлнэ.
Заагч хувьсагч нь санах ойн хаягийг
хадгалдаг байна.
5. Си хэлийн заагч
Заагчийн зарлагаа нь энгийн хувьсагчийн
зарлагаатай адил боловч хувьчсагчийн урд *
тэмдэгтэй байдгаараа ялгаатай.
int a; // engiin huvisagch
int *a; // zaagch huvisagch
6. Заагч
Заагч төрөл нь зөвхөн “unsigned int” утгыг л
хадгалдаг. Тэрнээс биш урд нь тавьж байгаа
өгөгдлийн төрөл өөр зориулалттай.
float *a; // adil
int *b; // adil
7. Хаяг авдаг Си хэлийн оператор
& оператор нь Си хэлэнд тухайн хувьсагчийн
санах ойд байрлаж байгаа хаягийг авдаг.
Бид өмнө нь scanf() функцэд ашиглаж
байсан.
scanf(“%d”, &a);
8. Заагчид утга олгоё!
int b;
int *a;
b = 17;
a = &b; // b huvisagchiin hayg a zaagchid
// hadgalagdlaa
11. Заагч дахь утгыг авахдаа
int b;
int *a;
b = 17;
a = &b;
printf(“%u”, a); // 1462 gej hevlene
printf(“%d”, *a); // 17 gej hevlene
13. Цуваа ба заагч
int a[] = {10,20,30,40,50};
int *p;
p = &a;
printf(“%dn”, *p); // 10
printf(“%dn”, *(p+1)); // 20
printf(“%dn”, *(p+2)); // 30
14. Энэ үед санах ойд
a
p p+1 p+2 p+3
Хаяг 2686712 2686716 2686720 2686724
Утга 10 20 30 40
printf(“%u”, a); // 2686712
printf(“%u”, p); // 2686712
Цувааны хувьсагч нь цуваа эхэлж байгаа санах ойн хаягийг хадгалж
байдаг.
16. Солих бодлогын шийдэл 1
int a = 5;
int b = 7;
a = a + b; // b = 7, a = 5 + 7 = 12
b = a - b; // a = 12, b = 12 - 7 = 5
a = a - b; // b = 5, a = 12 - 5 = 7
19. swap функцээ дуудъя
void main()
{
int a = 5;
int b = 7;
swap(a,b);
printf(“a=%d b=%d”, a, b);
}
21. swap функцээ дуудъя
void main()
{
int a = 5;
int b = 7;
swap(&a, &b);
printf(“a=%d b=%d”, a, b);
}