By GokiSoft.com|
20:09 20/09/2023|
Lập Trình C
[Share Code] Tìm hiểu về con trỏ trong C - C2307L
#main.c
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
/**
int x = 5;
//bien thuong: gia tri & dia chi
//gia tri -> x
//dia chi -> &x
// printf("\nNhap gia tri x = ");
// scanf("%d", &x);
printf("\nKet qua x = %d", x);
printf("\nKet qua x = %d", &x);
printf("\nKet qua x = %X", &x);
// printf("\nNhap gia tri x = ");
// scanf("%d", &x);
//
// printf("\nKet qua x = %d", x);
// printf("\nKet qua x = %d", &x);
// printf("\nKet qua x = %X", &x);
int *p;
//bien con tro: gia tri & dia chi
//gia tri: nhan gia tri dia chi cua bien no dang tro vao
//gia tri -> p
//dia chi -> &p
//gia tri cua dia chi dang tro toi (gia tri cuoi cung): *p
p = &x;
//int *p = &x;
printf("\nDia chi (p) = %X (%d)", &p, &p);
printf("\nGia tri (p) = %X (%d)", p, p);
printf("\nDia chi (p) = %d", *p);
//
// int t[20];
x = 10;
x++;
// *p = *p + 1;
// *p += 1;
*p++;
printf("\nx = %d, &x = %X, *p = %d, p = %X, &p = %X", x, &x, *p, p, &p);
*/
/**
int x = 5;
int *p = &x;
int y = 10;
x++;
printf("\nx = %d, &x = %X, y = %d, &y = %X, *p = %d, p = %X, &p = %X", x, &x, y, &y, *p, p, &p);
p = &y;
x++;
printf("\nx = %d, &x = %X, y = %d, &y = %X, *p = %d, p = %X, &p = %X", x, &x, y, &y, *p, p, &p);
*/
// int t[5] = {1, 5, 2, 9, 10};
/**
length: 5
index: 0 -> 4
Vi tri index = 1
gia tri: t[1] -> gia tri co cach viet khac: *(t + 1)
dia chi: &t[1] -> dia chi con cach viet khac: t + 1
*/
// printf("\nNhap t[1] = ");
// scanf("%d", t + 1);
//
// printf("\nt[1] = %d", t[1]);
// int i;
// for(i=0;i<5;i++) {
// printf("\nNhap t[%d] = ", i);
// scanf("%d", t + i);
//// scanf("%d", &t[i]);
// }
// int *p = t;
// for(i=0;i<5;i++) {
//// printf("\n%d", *p++);
//// printf("\n%d", *(p + i));
// printf("\n%d", p[i]);
// }
int *p;
//cap phat vung nho cho con tro p -> luu thong tin 1 mang nao
//cap phat 5 o nho cho con tro p?
// p = (int *) malloc (5 * sizeof(int));
//
// int i;
// for(i=0;i<5;i++) {
// printf("\nNhap p[%d] = ", i);
// scanf("%d", p + i);
// }
//
// free(p);
//TH: p = 2 o nho -> 1, 6.
//Thay doi so o nho len 5: 1, 6 -> ?, ?, ?
p = (int *) calloc(2, sizeof(int));
int i;
for(i=0;i<2;i++) {
printf("\nNhap p[%d] = ", i);
scanf("%d", p + i);
}
printf("\n===============================");
for(i=0;i<2;i++) {
printf("\n%d", p[i]);
}
p = (int *) realloc(p, 5 * sizeof(int));
for(i=2;i<5;i++) {
printf("\nNhap p[%d] = ", i);
scanf("%d", p + i);
}
printf("\n===============================");
for(i=0;i<5;i++) {
printf("\n%d", p[i]);
}
// float *q;
// q = (float *) malloc (5 * sizeof(float));
return 0;
}
Tags:
Phản hồi từ học viên
5
(Dựa trên đánh giá ngày hôm nay)