Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Tính tổng phần tử mảng bằng con trỏ trong C


Con trỏ là biến lưu trữ địa chỉ của biến khác.

Xét câu lệnh:

int qty = 179;

Tính tổng phần tử mảng bằng con trỏ trong C

Khai báo con trỏ

Cú pháp khai báo con trỏ:

int *p;

'p' là biến con trỏ giữ địa chỉ biến khác.

Khởi tạo con trỏ

Toán tử địa chỉ (&) dùng để khởi tạo con trỏ.

Ví dụ:

int qty = 175; 
int *p; 
p = &qty;

Mảng con trỏ

Là tập hợp các địa chỉ (hoặc tập hợp con trỏ).

Khai báo

Khai báo mảng con trỏ:

kiểu_dữ_liệu *tên_con_trỏ [kích_thước];

Ví dụ:

int *p[5];

Biểu diễn mảng con trỏ chứa 5 địa chỉ số nguyên.

Khởi tạo

'&' dùng để khởi tạo.

Ví dụ:

int a[3] = {10,20,30}; 
int *p[3], i; 
for (i = 0; i < 3; i++) 
    p[i] = &a[i]; 
// hoặc 
p[i] = a + i;

Truy cập

Toán tử gián tiếp (*) dùng để truy cập.

Ví dụ:

for (i = 0; i < 3; i++) 
    printf("%d", *p[i]);

Chương trình

Chương trình C tính tổng phần tử mảng bằng con trỏ:

// Tinh tong phan tu mang su dung con tro 
#include <stdio.h> 
#include <malloc.h> 
void main(){ 
    int i, n, sum = 0; 
    int *ptr; 
    printf("Nhap kich thuoc mang: \n"); 
    scanf("%d", &n); 
    ptr = (int *) malloc(n * sizeof(int)); 
    printf("Nhap cac phan tu trong danh sach \n"); 
    for (i = 0; i < n; i++){ 
        scanf("%d", ptr + i); 
    } 
    // Tinh tong cac phan tu 
    for (i = 0; i < n; i++){ 
        sum = sum + *(ptr + i); 
    } 
    printf("Tong tat ca phan tu mang = %d\n", sum); 
    return 0; 
}

Đầu ra

Kết quả chạy chương trình:

Nhap kich thuoc mang: 5 
Nhap cac phan tu: 12 13 14 15 16 
Tong tat ca phan tu mang = 70