簡體   English   中英

將指針傳遞給函數而無需修改參數?

[英]Passing pointer to function WITHOUT modifying argument?

我有一個矩陣M[2][2] ,想調用函數dontModify(M) ,該函數將與M的元素一起使用,但不更改它們。 就像是:

dontModify(M):
   swap off-diagonal elements;
   take determinant of M;
   return determinant;

...但是在此過程中沒有更改功能M。 有什么方便的辦法可以做到這一點?

在函數內部創建矩陣的本地副本,您可以使用該副本進行任何操作。


int some_function(int matrix[2][2])
{
    int local_matrix[2][2] = {
        { matrix[0][0], matrix[0][1] },
        { matrix[1][0], matrix[1][1] },
    };

    /* Do things with `local_matrix` */
    /* Do _not_ use `matrix` */

    ...
}

坦白地說,不要理解您的問題。 您正在使用矩陣,因此它將通過指針傳遞給函數。 因此,只需創建矩陣的副本,對其進行處理,銷毀該副本,然后再返回即可。 如果此調用非常頻繁,則可以嘗試節省一些時間並就地工作,只是不要忘記在返回之前將對角線的元素交換回來。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM