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)

Đăng nhập để làm bài kiểm tra

Chưa có kết quả nào trước đó