C语言交换两个数的值与形参与实参理解
生活随笔
收集整理的這篇文章主要介紹了
C语言交换两个数的值与形参与实参理解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
C Simple Swap Program – Assignments
通過賦值來實現交換變量
vi swap_simple0.c #include <stdio.h>int main() {int a = 23, b = 47;int t;printf("Before. a: %d, b: %d\n", a, b);t = a;a = b;b = t;printf("After. a: %d, b: %d\n", a, b);return 0; } cc -o swap_simple0 swap_simple0.c swap_simple0 Before. a: 23, b: 47 After. a: 47, b: 23C Simple Swap Program – Exclusive-Or
通過異或來實現,新建 swap_simple1.c
#include <stdio.h>int main() {int a = 23, b = 47;printf("Before. a: %d, b: %d\n", a, b);a ^= b;b ^= a;a ^= b;printf("After. a: %d, b: %d\n", a, b);return 0; } % cc -o swap_simple1 swap_simple1.c % swap_simple1 Before. a: 23, b: 47 After. a: 47, b: 23C Swap Program – Fails
這樣做是不行的,所有的交換都在swap中,但是這個交換沒有返回值,當i,j 交換后,隨即釋放,不會對a,b 有任何影響。
說點題外化,這個swap函數在,就像你曾經做過的春夢,你和女神在夢中一番云雨。也互相交換了體液但是當夢醒來,一切美夢中的意象瞬間幻滅,女生也并沒有懷上你的孩子,對現實沒有任何影響。
#include <stdio.h>void swap(int i, int j) {int t = i;i = j;j = t; }int main() {int a = 23, b = 47;printf("Before. a: %d, b: %d\n", a, b);swap(a,b);printf("After. a: %d, b: %d\n", a, b);return 0; } % cc -o swap0 swap0.c % swap0 Before. a: 23, b: 47 After. a: 23, b: 47我們說C 是一個古老的語言,相當古老,在C中函數只能有一個返回值,我們可以在python 中通過返回多個值實現交換如下,在C中我們一般在代碼中不操作數值,而是通過操作指針來操作數據
在Python中,這個swap函數有返回值,return a,b 返回值是什么,是夢與現實的橋梁,return將你夢中的結晶帶回了現實。
def swap(a,b):c=aa=bb=creturn a,b def main():a=23b=47a,b=swap(a,b)print('a=',a,'b=',b)main() a= 47 b= 23C Swap Program with Pointers – Works
這段代碼能夠幫助我們理解指針的含義
swap這樣寫,你的女神夢見你,托夢給了你,女生將她房間的地址告訴了你,你夢游過去了,雖然你以為你在做夢,實際上你肉身翻墻進入了女神的閨房,一番xxoo…,女神懷孕了
#include <stdio.h>void swap(int *i, int *j) {int t = *i; //將*i(a)的數值賦值給t*i = *j; //*將j(b)的數值賦值給i(&a)所指向的內存空間*j = t; //*將t的數值賦值給j(&b)所指向的內存空間 }void main() {int a = 23, b = 47;printf("Before. a: %d, b: %d\n", a, b);swap(&a, &b);printf("After . a: %d, b: %d\n", a, b); } % cc -o swap1 swap1.c % swap1 Before. a: 23, b: 47 After. a: 47, b: 23引用是C++引入的新語言特性,是C++常用的一個重要內容之一,
曾經有人說過c++是上古神獸(C)下的一個蛋,此蛋青出于藍,稟賦異常強大,神蛋可以通過冥想意淫讓女神懷孕,引用即是意淫。。。。。
#include <iostream> using std::cout;void swap(int& i, int& j) {int t = i;i = j;j = t; }int main() {int a = 23, b = 47;cout << "Before. a: " << a << ", b: " << b << "\n";swap(a, b);cout << "After. a: " << a << ", b: " << b << "\n";return 0; } % CC -o swap_CC swap.cpp % swap_CC Before: a: 23, b: 47 After: a: 47, b: 23代碼的本質是哲學,是詩篇,而函數就是碼農的春夢和意淫…
參考鏈接
總結
以上是生活随笔為你收集整理的C语言交换两个数的值与形参与实参理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ 引用
- 下一篇: 哈工大操作系统环境配置