By GokiSoft.com| 15:09 03/12/2021|
Lập Trình C

[Video] Tìm hiểu con trỏ - Pointer - Lập trình 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[]) {
	//Pointer
	//Bai toan nhap du lieu
	int x = 5;
	char c;
	float t;
	int k[10];
//	printf("\nNhap x = ");
//	scanf("%d", &x);
	
	printf("\nX -> Gia tri x = %d, dia chi: %X", x, &x);
	
	//Bai toan con tro => pointer
	int *p;//bien con tro => pointer
	p = &x;
	printf("\nP -> Gia tri p = %X, dia chi: %X, gia tri tro toi: %d", p, &p, *p);
	
	x++;
	printf("\n*p = %d", *p);//6
	
	*p = *p + 1;
	printf("\nx = %d", x);//7
	
	*p += 1;
	printf("\nx = %d", x);//8
	
	*p = x + 2;
	printf("\nx = %d", x);//10
	
	(*p)++;
	printf("\nx = %d", x);//11
	printf("\n*p = %d", *p);//11
	
	*p++;
	printf("\nx = %d", x);//11
	printf("\n*p = %d", *p);//11
	
	//mang
	int m[5] = {1, 5, 2, 7, 8};
	int i;
//	for(i=0;i<5;i++) {
//		printf("\nNhap m[%d] = ", i);
////		scanf("%d", &m[i]);
//		scanf("%d", m + i);
//	}
	
	int *q;
	//lam sao de cai dat *q -> tro toi mang m nhu nao
	q = &m[0];//q = m;
	//q, q+1, q+2, q+3, q + 4 <=> m, m+1, m+2, m+3, m+4
//	for(i=0;i<5;i++) {
//		printf("\n%d", m[i]);
//		printf("\n%d", *(m+i));
//		printf("\n%d", q[i]);
//		printf("\n%d", *(q+i));
//	}
	printf("\np = %d", q[0]);
	*q++;
	printf("\np = %d", q[0]);
	
	//cap phat o nho cho con tro pt;
	int *pt;
	//lam sao cap phat cho con tro pt => tro toi 1 mang gom 5 phan tu.
	pt = (int *) malloc(5 * sizeof(int));//pt => cap phat cho pt 1 mang gom 5 so nguyen
	for(i=0;i<5;i++) {
		printf("\nNhap pt[%d] = ", i);
		scanf("%d", pt + i);
	}
	for(i=0;i<5;i++) {
		printf("%d", pt[i]);
	}
	free(pt);
	
	//Bai toan: *d => 1 (1), 2 (3), 5 (8) => lam sao quan ly mang *d => cap phat dong =< 1, 3, 8
	int *d;
	d = (int *) calloc (1, sizeof(int));
	for(i=0;i<1;i++) {
		printf("\nNhap d[%d] = ", i);
		scanf("%d", d + i);
	}
	//cap d => tong so phan tu la 3
	d = (int *) realloc (d, 3 * sizeof(int));
	for(i=1;i<3;i++) {
		printf("\nNhap d[%d] = ", i);
		scanf("%d", d + i);
	}
	for(i=0;i<3;i++) {
		printf("%d", d[i]);
	}
	
	return 0;
}




Tags:

Phản hồi từ học viên

5

(Dựa trên đánh giá ngày hôm nay)