Hướng dẫn swap two numbers using call by value c++ - hoán đổi hai số bằng cách gọi theo giá trị c ++

  1. Quên mã
  2. C
  3. Trao đổi số bằng cách sử dụng cuộc gọi theo giá trị

 //Call by Value Example - Swapping 2 numbers using Call by Value
#include 
 
 
void swap[int, int];
 
int main[]
{
   int x, y;
 
   printf["Enter the value of x and y\n"];
   scanf["%d%d",&x,&y];
 
   printf["Before Swapping\nx = %d\ny = %d\n", x, y];
 
   swap[x, y]; 
 
   printf["After Swapping\nx = %d\ny = %d\n", x, y];
 
   return 0;
}
 
void swap[int a, int b]
{
   int temp;
 
   temp = b;
   b = a;
   a = temp;
    printf["Values of a and b is %d  %d\n",a,b];
}
 
Output:
Nhập giá trị của x và y
Trước khi hoán đổi
x = 10
y = 5
Giá trị của A và B là 5 10
Sau khi hoán đổi
x = 10
y = 5

C chương trình để trao đổi hai số bằng cách sử dụng cuộc gọi theo giá trị

Chương trình C này là trao đổi hai số bằng cách sử dụng CALL theo giá trị. Trong trường hợp này, các thay đổi được thực hiện đối với tham số bên trong hàm không ảnh hưởng đến lập trình đối số.in C, C theo mặc định sử dụng cuộc gọi theo giá trị để truyền đối số.call by value method of passing arguments to a function copies the actual value of an argument into the formal parameter of the function. In this case, changes made to the parameter inside the function have no effect on the argument.In C programming, C by default uses call by value to pass arguments.

Hợp lý

Chúng tôi đang sử dụng một hàm gọi là hoán đổi []. Hàm này về cơ bản hoán đổi hai số, cách chúng tôi thường thực hiện một biến tạm thời trong C để trao đổi 2 NOS.

Chạy khô của chương trình

Lấy 2 nos làm đầu vào.let chúng tôi lấy n1 = 7 và n2 = 10.

Các giá trị trước khi gọi hàm hoán đổi sẽ là N1 = 7 và N2 = 10.

hoán đổi [n1, n2] i.e hoán đổi [7,10].

Bây giờ chúng tôi nhập chức năng hoán đổi

temp = n1 & nbsp; tức là temp = 7

n1 = n2 I.E. n1 = 10

n2 = temp i.e. n2 = 7

Vì vậy, các giá trị được in bên trong hàm hoán đổi sẽ là n1 = 10 và n2 = 7

Nhưng vì các giá trị không được truyền bởi giá trị, chúng sẽ không thay đổi bên trong chính.

Do đó, sau khi gọi hàm hoán đổi, bạn có thể thấy rằng các giá trị N1 và N2 bên trong chính vẫn không thay đổi.

Chương trình

#include

void swap[int,int];        

void main[ ]
{
    int n1,n2;
    printf["Enter the two numbers to be swapped\n"];
    scanf["%d%d",&n1,&n2];
    printf["\nThe values of n1 and n2 in the main function before calling the swap function are n1=%d n2=%d",n1,n2];
    swap[n1,n2];                                          
    printf["\nThe values of n1 and n2 in the main function after calling the swap function are n1=%d n2=%d",n1,n2];}

void swap[int n1,int n2]                           
{ 
    int temp;
    temp=n1;
    n1=n2;
    n2=temp;
    printf["\nThe values of n1 and n2 in the swap function after swapping are n1=%d n2=%d",n1,n2];
}

Đầu ra

b = a-b; // b = 10 [30-20].

a = a-b; // a = 20 [30-10].

Có chức năng hoán đổi trong C không?

Để trả lời trực tiếp câu hỏi của bạn, không có chức năng hoán đổi trong tiêu chuẩn C, mặc dù nó sẽ là tầm thường để viết.

  • Cuộc gọi theo giá trị trong c là gì?
  • Cuộc gọi theo phương thức giá trị chuyển các đối số đến một hàm sao chép giá trị thực của một đối số vào tham số chính thức của hàm. Trong trường hợp này, các thay đổi được thực hiện cho tham số bên trong hàm không có tác dụng đối với đối số. Theo mặc định, C Lập trình C sử dụng cuộc gọi theo giá trị để truyền đối số.
  • Tiếp theo → ← Prev
  • Có hai phương thức để truyền dữ liệu vào hàm trong ngôn ngữ C, tức là, gọi theo giá trị và gọi theo tham chiếu.

Hãy hiểu cuộc gọi theo giá trị và gọi bằng cách tham khảo bằng từng ngôn ngữ.

Đầu ra

Before function call x=100
Before adding value inside function num=100
After adding value inside function num=200
After function call x=100

Gọi theo giá trị trong c

Đầu ra

Before swapping the values in main a = 10, b = 20
After swapping values in function a = 20, b = 10
After swapping values in main a = 10, b = 20  

Trong phương thức gọi theo giá trị, giá trị của các tham số thực tế được sao chép vào các tham số chính thức. Nói cách khác, chúng ta có thể nói rằng giá trị của biến được sử dụng trong lệnh gọi hàm trong phương thức gọi theo phương thức giá trị.

  • Trong phương thức gọi theo giá trị, chúng ta không thể sửa đổi giá trị của tham số thực tế bằng tham số chính thức.
  • Giá trị của các tham số thực tế có thể được sửa đổi bằng cách thay đổi các tham số chính thức vì địa chỉ của các tham số thực tế được truyền.
  • Trong cuộc gọi bằng tham chiếu, phân bổ bộ nhớ tương tự cho cả các tham số chính thức và các tham số thực tế. Tất cả các hoạt động trong hàm được thực hiện trên giá trị được lưu trữ tại địa chỉ của các tham số thực tế và giá trị sửa đổi được lưu trữ tại cùng một địa chỉ.

Xem xét ví dụ sau cho cuộc gọi bằng cách tham khảo.

Đầu ra

Before function call x=100
Before adding value inside function num=100
After adding value inside function num=200
After function call x=200

Gọi bằng ví dụ tham khảo: Trao đổi các giá trị của hai biến

Đầu ra

Before swapping the values in main a = 10, b = 20
After swapping values in function a = 20, b = 10
After swapping values in main a = 20, b = 10  

Gọi bằng ví dụ tham khảo: Trao đổi các giá trị của hai biến

No.Sự khác biệt giữa cuộc gọi theo giá trị và cuộc gọi bằng tham chiếu trong cGọi theo giá trị
1 Gọi bằng cách tham khảoMột bản sao của giá trị được chuyển vào hàm
2 Một địa chỉ giá trị được chuyển vào hàmCác thay đổi được thực hiện bên trong hàm chỉ giới hạn trong chức năng. Các giá trị của các tham số thực tế không thay đổi bằng cách thay đổi các tham số chính thức.
3 Những thay đổi được thực hiện bên trong chức năng xác nhận bên ngoài chức năng. Các giá trị của các tham số thực tế thay đổi bằng cách thay đổi các tham số chính thức.Các đối số thực tế và chính thức được tạo tại cùng một vị trí bộ nhớ

Chủ đề tiếp theo ReRecursion trong Crecursion in C

← Tiếp theo →

Làm thế nào để bạn trao đổi hai số theo giá trị cuộc gọi?

Gọi theo giá trị Ví dụ: Trao đổi các giá trị của hai biến..
#bao gồm .
hoán đổi void [int, int]; // Nguyên mẫu của hàm ..
int main [].
int a = 10 ;.
int b = 20 ;.
printf ["Trước khi hoán đổi các giá trị trong chính a = %d, b = %d \ n", a, b]; // in giá trị của A và B trong chính ..
swap[a,b];.

Làm thế nào để bạn trao đổi hai số trong c?

C chương trình để trao đổi hai số mà không có biến thứ ba..
#include.
int main [].
int a = 10, b = 20 ;.
printf ["trước khi hoán đổi a =%d b =%d", a, b] ;.
a = a+b; // a = 30 [10+20].
b = a-b; // b = 10 [30-20].
a = a-b; // a = 20 [30-10].

Có chức năng hoán đổi trong C không?

Để trả lời trực tiếp câu hỏi của bạn, không có chức năng hoán đổi trong tiêu chuẩn C, mặc dù nó sẽ là tầm thường để viết.no there is no swap function in standard C, although it would be trivial to write.

Cuộc gọi theo giá trị trong c là gì?

Cuộc gọi theo phương thức giá trị chuyển các đối số đến một hàm sao chép giá trị thực của một đối số vào tham số chính thức của hàm.Trong trường hợp này, các thay đổi được thực hiện cho tham số bên trong hàm không có tác dụng đối với đối số.Theo mặc định, C Lập trình C sử dụng cuộc gọi theo giá trị để truyền đối số.copies the actual value of an argument into the formal parameter of the function. In this case, changes made to the parameter inside the function have no effect on the argument. By default, C programming uses call by value to pass arguments.

Bài Viết Liên Quan

Chủ Đề