Computer >> Máy Tính >  >> Lập trình >> lập trình C

Truyền theo giá trị trong ngôn ngữ C là gì?

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