#include <stdio.h>#include <malloc.h>typedef struct Node {int i, j, k;}Node;void SizeOfStruct(Node node) {printf("%d\n", sizeof(node));}void SizeOfArray(int *array) {printf("%d\n", sizeof(array));}void main() {Node node;int array[8];SizeOfArray(array);SizeOfStruct(node);}
2 回答

叮當貓咪
TA貢獻1776條經驗 獲得超12個贊
參數的傳入分為兩種形式:值傳遞和地址傳遞。如果把實例本身作為參數傳到函數里面去,那么在函數里面實際上是另外產生一個臨時的實例,其值和函數外部的那個實例一樣,當然在函數內部對其做的一些改動是不會影響到外邊的實例的,因為就不是同一個東西。當然如果在函數里不是想去改變什么而只是單純的計算一些東西還是沒問題的,不過在內存中的地址之類的當然是不一樣的。。。傳指針也就是把地址傳進去,那么在函數里對該地址中的數據進行操作,當然就是在外部實例本身上面進行修改了

吃雞游戲
TA貢獻1829條經驗 獲得超7個贊
1、仍然是以形參傳入。相當于重新拷貝了一個結構體傳入函數進行操作。
2、參數的傳入分為兩種形式:值傳遞和地址傳遞。如果把實例本身作為參數傳到函數里面去,那么在函數里面實際上是另外產生一個臨時的實例,其值和函數外部的那個實例一樣,當然在函數內部對其做的一些改動是不會影響到外邊的實例的,因為就不是同一個東西。當然如果在函數里不是想去改變什么而只是單純的計算一些東西還是沒問題的,不過在內存中的地址之類的當然是不一樣的。傳指針也就是把地址傳進去,那么在函數里對該地址中的數據進行操作,當然就是在外部實例本身上面進行修改了。
- 2 回答
- 0 關注
- 191 瀏覽
添加回答
舉報
0/150
提交
取消