Truyền theo giá trị được gọi là các giá trị được gửi dưới dạng đối số trong ngôn ngữ lập trình C.
Thuật toán
Một thuật toán được đưa ra bên dưới để giải thích hoạt động của từng giá trị trong ngôn ngữ C.
START Step 1: Declare a function that to be called. Step 2: Declare variables. Step 3: Enter two variables a,b at runtime. Step 4: calling function jump to step 6. Step 5: Print the result values a,b. Step 6: Called function swap. i. Declare temp variable ii. Temp=a iii. a=b iv. b=temp STOP
Ví dụ
Dưới đây là chương trình C để hoán đổi hai số bằng cách sử dụng chuyển theo giá trị -
#include<stdio.h> void main(){ void swap(int,int); int a,b; printf("enter 2 numbers"); scanf("%d%d",&a,&b); printf("Before swapping a=%d b=%d",a,b); swap(a,b); printf("after swapping a=%d, b=%d",a,b); } void swap(int a,int b){ int t; // all these statements is equivalent to t=a; // a = (a+b) – (b =a); a=b; // or b=t; // a = a + b; } // b = a – b; //a = a – b;
Đầu ra
Khi chương trình trên được thực thi, nó tạo ra kết quả sau -
enter 2 numbers 10 20 Before swapping a=10 b=20 After swapping a=10 b=20
Hãy lấy một ví dụ khác để biết thêm về chuyển theo giá trị.
Ví dụ
Sau đây là chương trình C để tăng giá trị lên 5 cho mỗi cuộc gọi bằng cách sử dụng lệnh gọi theo giá trị hoặc chuyển theo giá trị -
#include <stdio.h> int inc(int num){ num = num+5; return num; } int main(){ int a=10,b,c,d; b =inc(a); //call by value c=inc(b); //call by value d=inc(c); //call by value printf("a value is: %d\n", a); printf("b value is: %d\n", b); printf("c value is: %d\n", c); printf("d value is: %d\n", d); return 0; }
Đầu ra
Khi chương trình trên được thực thi, nó tạo ra kết quả sau -
a value is: 10 b value is: 15 c value is: 20 d value is: 25