Re: [問題] C跟C++一樣有參照的功能嗎?
※ 引述《mingjen8329 (雙面人 )》之銘言:
: 各位大大好,小弟目前用C寫一個程式,想用參照的功能將變數傳遞到函數
: 進而在跳出副函式後可以改變原先所設定的值,(函數間傳遞多個傳回值的問題)
: 卻發現有誤,想說會不會是C並沒有像C++一樣有參照的功能。
: (已知可以用傳址的方式處理)
: 正在學程式的小嫩嫩懇請板上高手解惑
C 語言並不存在 call by address 和 call by reference 的差異性
應該解釋為 call by pointer 和 call by reference 的差異性
而這兩者都屬於 call by address。
1.C++ Sample (call by reference/address)
#include <iostream>
using namespace std;
void swap (int &a, int &b)
{
if (&a != &b)
a^=b^=a^=b;
}
int main(void)
{
int a = 1;
int b = 2;
cout << "Before : a = " << a << ", b = " << b << endl;
swap(a, b);
cout << "After : a = " << a << ", b = " << b << endl;
}
2.C Sample (call by pointer/address)
#include <stdio.h>
void swap (int *a, int *b)
{
if (*a != *b)
*a^=*b^=*a^=*b;
}
int main(void)
{
int a = 1;
int b = 2;
printf("Before : a = %d, b = %d\n", a, b);
swap(&a, &b);
printf("After : a = %d, b = %d\n", a, b);
}
--
私が生存への道は
今も未來も唯一つ
私自身の闇黑のためだ
即ち「ハ・ル・ヒ」
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.168.73
推
08/16 08:53, , 1F
08/16 08:53, 1F
→
08/16 11:29, , 2F
08/16 11:29, 2F
→
08/16 11:30, , 3F
08/16 11:30, 3F
→
08/16 11:30, , 4F
08/16 11:30, 4F
→
08/16 11:30, , 5F
08/16 11:30, 5F
推
08/16 18:36, , 6F
08/16 18:36, 6F
→
08/16 18:55, , 7F
08/16 18:55, 7F
→
08/17 03:32, , 8F
08/17 03:32, 8F
→
08/17 12:32, , 9F
08/17 12:32, 9F
推
08/19 01:00, , 10F
08/19 01:00, 10F
→
08/19 01:00, , 11F
08/19 01:00, 11F
→
08/19 02:34, , 12F
08/19 02:34, 12F
推
08/19 11:10, , 13F
08/19 11:10, 13F
※ 編輯: TKyo 來自: 220.133.168.73 (08/20 01:18)
→
08/20 01:18, , 14F
08/20 01:18, 14F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):