亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

下面例子的結果是4, 12; 我想這不是以指針形式傳入的吧, 那是以什么形式傳入的?

下面例子的結果是4, 12; 我想這不是以指針形式傳入的吧, 那是以什么形式傳入的?

C
肥皂起泡泡 2023-04-19 19:15:03
#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個贊

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

查看完整回答
反對 回復 2023-04-23
?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

1、仍然是以形參傳入。相當于重新拷貝了一個結構體傳入函數進行操作。
2、參數的傳入分為兩種形式:值傳遞和地址傳遞。如果把實例本身作為參數傳到函數里面去,那么在函數里面實際上是另外產生一個臨時的實例,其值和函數外部的那個實例一樣,當然在函數內部對其做的一些改動是不會影響到外邊的實例的,因為就不是同一個東西。當然如果在函數里不是想去改變什么而只是單純的計算一些東西還是沒問題的,不過在內存中的地址之類的當然是不一樣的。傳指針也就是把地址傳進去,那么在函數里對該地址中的數據進行操作,當然就是在外部實例本身上面進行修改了。

查看完整回答
反對 回復 2023-04-23
  • 2 回答
  • 0 關注
  • 191 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號