Torolàlana Fototra amin'ny Tabilao sy Mpanoro ova amin'ny Fiteny C
hanovaNy tabilao (na arrays) sy ppanoro ova dia ampahany lehibe amin'ny fiteny C, izay manamora ny fitantanana angona sy ny fampiasana loharanon-karena amin'ny fandaharana. Ity cheatsheet ity dia manome topi-maso fohy momba ny fampiasana tabilao sy ppanoro ova amin'ny C.
Tabilao (Arrays)
hanova- Inona ny Tabilao?
Tabilao dia andiana fanova mitovitovy karazana izay voatahiry ao anaty bloky mitohy ao amin'ny memoire. Ny tabilao dia mamela ny fitahirizana angona maromaro ao anaty anaran-tsoratra tokana.
int isa[5] = {1, 2, 3, 4, 5};
- Fidirana amin'ny Singa ao amin'ny Table
Azonao atao ny miditra amin'ny singa tsirairay ao amin'ny table amin'ny alalan'ny fanondroana ny index-nao.
int voalohany = isa[0]; // miditra amin'ny singa voalohany
int faharoa = isa[1]; // miditra amin'ny singa faharoa
- Mamorona Tabilao Roa-naorina (2D Arrays)
Tabilao roa-naorina dia tabilao izay manana andalana sy andalana maromaro.
int matrix[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
- Fidirana amin'ny Singa ao amin'ny Table Roa-naorina
Azonao atao ny miditra amin'ny singa ao amin'ny table roa-naorina amin'ny alalan'ny fampiasana index roa.
int sanda = matrix[1][2]; // miditra amin'ny singa amin'ny andalana faharoa sy andalana fahatelo
Mpanoro ova (Mpampitohy)
hanova- Inona ny Mpanoro ova?
Mpanoro ova dia fanova izay mitahiry ny adiresy memoire an'ny fanova hafa. Amin'ny fampiasana ppanoro ova, azonao atao ny miditra amin'ny angona amin'ny fomba tsy mivantana ary manatsara ny fahombiazana amin'ny fitantanana loharanon-karena.
int isa = 10;
int *p = &isa; // p dia mpanoro ova izay mitahiry ny adiresin'ny fanova isa
- Fidirana amin'ny Sanda amin'ny alalan'ny Pointer
Amin'ny fampiasana mpanoro ova, azonao atao ny miditra amin'ny sanda ao amin'ny adiresy izay notondroiny.
printf("Ny sanda ao amin'ny isa dia %d\\n", *p); // mampiseho ny sanda 10
- Mpanoro ova sy Tabilao
Tabilao dia mifandray akaiky amin'ny ppanoro ova satria ny anaran'ny table dia mpanoro ova izay manondro ny adiresy voalohany ao amin'ny table.
int isa[3] = {10, 20, 30};
int *p = isa; // p dia mpanoro ova manondro ny singa voalohany ao amin'ny table isa
printf("Ny sanda voalohany dia %d\\n", *p); // mampiseho ny sanda 10
printf("Ny sanda faharoa dia %d\\n", *(p + 1)); // mampiseho ny sanda 20
- Mpanoro ova amin'ny Mpanoro ova
Azonao atao ny mamorona mpanoro ova izay manondro mpanoro ova hafa, antsoina hoe mpanoro ova-to-mpanoro ova.
int isa = 50;
int *p = &isa;
int **pp = &p; // pp dia mpanoro ova manondro ny mpanoro ova p
printf("Ny sanda ao amin'ny isa dia %d\\n", **pp); // mampiseho ny sanda 50
Fampiasana Mpanoro ova amin'ny Fomba (Functions)
hanova- Mandefa Mpanoro ova ho Parametra
Mpanoro ova dia ampiasaina matetika amin'ny fandefasana angona ho parametra amin'ny fomba iray, indrindra rehefa mila ovaina ny sanda amin'ny fanova tany am-boalohany.
void ovaina(int *p) {
*p = 100; // manova ny sanda ao amin'ny adiresy notondroin'ny p
}
int main() {
int isa = 10;
ovaina(&isa); // mandefa ny adiresin'ny isa ho parametra
printf("Ny sanda vaovao ao amin'ny isa dia %d\\n", isa); // mampiseho ny sanda 100
return 0;
}
Torolàlana momba ny Mpanoro Ova Mandroso amin'ny Fiteny C
hanovaNy mpanoro ova dia ampahany tena manan-danja amin'ny fiteny C, indrindra rehefa mila fitantanana angona sy loharanon-karena amin'ny fomba mandroso sy mahomby. Ity torolàlana ity dia hanazava ny foto-kevitra mandroso momba ny mpanoro ova amin'ny fiteny C.
Fampidirana momba ny Mpanoro Ova Mandroso
hanovaMpanoro ova dia fanova izay mitahiry ny adiresin'ny fanova hafa ao amin'ny memoire. Amin'ny fampiasana mpanoro ova, azonao atao ny miditra mivantana amin'ny memoire, mitantana angona amin'ny fomba mahomby, ary manao asa maro izay tsy azo atao amin'ny fanova tsotra.
Mpanoro Ova ho amin'ny Mpanoro Ova (Pointer to Pointer)
hanovaMpanoro ova ho amin'ny mpanoro ova dia fotokevitra iray izay ahafahanao mamorona mpanoro ova izay manondro ny adiresin'ny mpanoro ova hafa. Ity dia ampiasaina matetika amin'ny fandaharana mandroso izay mila fitantanana loharanon-karena maro.
int isa = 50;
int *mpanoro = &isa;
int **mpanoro_mpanoro = &mpanoro; // mpanoro_mpanoro dia manondro ny mpanoro
printf("Ny sanda ao amin'ny isa dia: %d\\n", **mpanoro_mpanoro); // Mampiseho 50
Mpanoro Ova amin'ny Fomba (Functions)
hanovaMpanoro ova dia matetika ampiasaina amin'ny fomba (functions) mba handefasana adiresy fanova ho parametra. Izany dia mamela ny fomba hanova ny sandan'ny fanova tany am-boalohany.
- Ohatra amin'ny Mpanoro Ova ampiasaina amin'ny Fomba
void ovaina_sanda(int *mpanoro) {
*mpanoro = 100; // Manova ny sanda ao amin'ny adiresy notondroin'ny mpanoro
}
int main() {
int isa = 10;
ovaina_sanda(&isa); // Mandefa ny adiresin'ny isa ho parametra
printf("Ny sanda vaovao ao amin'ny isa dia: %d\\n", isa); // Mampiseho 100
return 0;
}
Mpanoro Ova sy Tables (Arrays)
hanovaNy tables sy mpanoro ova dia mifandray akaiky satria ny anaran'ny table dia tena mpanoro ova izay manondro ny adiresin'ny singa voalohany ao amin'ny table. Azonao atao ny mampiasa mpanoro ova amin'ny fanovana singa ao amin'ny table.
int isa[3] = {10, 20, 30};
int *mpanoro = isa; // mpanoro dia manondro ny singa voalohany ao amin'ny table isa
printf("Ny sanda voalohany dia: %d\\n", *mpanoro); // Mampiseho 10
printf("Ny sanda faharoa dia: %d\\n", *(mpanoro + 1)); // Mampiseho 20
Mpanoro Ova Void (Void Pointers)
hanovaNy mpanoro ova void
dia karazana mpanoro ova izay azo ampiasaina amin'ny karazana angona rehetra. Tsy azo idirana mivantana ny sandan'ny mpanoro ova void, fa mila avadika ho karazana hafa aloha.
void *mpanoro;
int isa = 10;
mpanoro = &isa;
printf("Ny sanda ao amin'ny isa dia: %d\\n", *(int *)mpanoro); // Mampiseho 10
Mpanoro Ova amin'ny Vondrona (Struct Pointers)
hanovaMpanoro ova dia azo ampiasaina amin'ny vondrona (structs) mba hanondro ny adiresin'ny vondrona iray, ka mamela ny fidirana amin'ny singa ao anatin'ny vondrona amin'ny alalan'ny mpanoro ova.
struct Vondrona {
int laharana;
float sanda;
};
int main() {
struct Vondrona ohatra = {1, 9.5};
struct Vondrona *mpanoro = &ohatra;
printf("Laharana: %d\\n", mpanoro->laharana); // Mampiseho 1
printf("Sanda: %f\\n", mpanoro->sanda); // Mampiseho 9.500000
return 0;
}
Mpanoro Ova sy Fitantanana Loharanon-karena
hanovaMpanoro ova dia tena ilaina amin'ny fitantanana loharanon-karena, indrindra rehefa mampiasa memoire voatokana amin'ny alalan'ny malloc
na calloc
ianao. Azo atao ny mamorona toerana fitehirizana ao amin'ny memoire amin'ny alalan'ny mpanoro ova, ary avy eo dia afaka mamafa azy io rehefa tsy ilaina intsony.
int *mpanoro = (int *)malloc(5 * sizeof(int)); // Mamorona toerana ho an'ny integers 5
if (mpanoro == NULL) {
printf("Tsy ampy ny memoire!\\n");
return 1;
}
for (int i = 0; i < 5; i++) {
mpanoro[i] = i + 1;
}
for (int i = 0; i < 5; i++) {
printf("%d ", mpanoro[i]); // Mampiseho 1 2 3 4 5
}
free(mpanoro); // Mamafa ny memoire
Fehiny
hanovaNy Tabilao sy mpanoro ova dia fitaovana fototra amin'ny fiteny C izay manamora ny fitantanana angona sy ny fifandraisana amin'ny memoire. Amin'ny alalan'ny fahatakarana ny fampiasana azy ireo, azonao atao ny manatsara ny fahombiazana sy ny fahaiza-manao amin'ny fandaharana amin'ny C.
Ny mpanoro ova dia fitaovana mahery vaika amin'ny fiteny C, indrindra amin'ny fitantanana angona sy loharanon-karena amin'ny fomba mandroso. Amin'ny alalan'ny fahatakarana ny foto-kevitra mandroso momba ny mpanoro ova, dia afaka mampiasa ny herin'ny fiteny C ianao amin'ny famoronana rindrambaiko mahomby sy matanjaka.