為什麼c語言不能通過執行呼叫函式來改變實參指標變數的值

2021-04-21 01:33:42 字數 891 閱讀 4979

1樓:小雨田大

呼叫函式,只能改變指標指向的記憶體空間的內容,不能改變實參指標變數的值。專

我覺得題

屬主對指標變數,還算有一點了解。

指標變數,其實也就是乙個變數,但它的值是一塊記憶體的位址。

函式呼叫時,你只是把實參指標變數的值,即一塊記憶體的位址,賦(複製)給了形參,然後,你在函式內把形參指標指向別的記憶體空間位址,與實參指標就無關了,實參指標還是指向原來的那塊記憶體空間。

另外,你把實參指標變數的值,賦(複製)給了形參,然後形參指標就能操縱這塊記憶體了,可以改變這塊記憶體的容。此時,實參指標指向的那塊記憶體的內容也就改變了,但實參指標的值還是函式呼叫前的那塊記憶體空間的位址。

2樓:匿名使用者

是可以的啊?你**有問題吧,發來看看

c語言不可能通過執行呼叫函式來改變實參指標變數的值

3樓:匿名使用者

你這個程式編譯沒錯誤?主函式的實參為p,p得到的是a的位址,而返回的普通變數a能賦給p?還能用整數格式直接輸出p?這樣p本是指標變數,後賦值為a,合理嗎?

c語言,指標函式的呼叫為什麼不能改變值?

4樓:匿名使用者

首先,這個不來是指標函式

,void *ptr(自int * x,int * y ,int * z);才是指標bai函式。指標函式是函du數,只是函式返zhi回的是個指dao針(位址)。

其次,執行z++之後指標向後移動乙個int型位元組 ,但是 z++ 表示式的值還是原值,所以*(z++)還是原值,對於指標中存放的內容c沒有改變,而第二次執行函式ptr

之後還是重複第一的動作,所以倆次列印的c 都是原值。a ,b值為什麼改變你應該知道。

溶菌酶為什麼不能通過革蘭陰性菌外膜

外膜允許小分子物質通過 培養細菌時加入的營養物質也會被細菌分泌的酶分解成小分子物質再供其吸收 溶菌酶不可以通過外模,所以革蘭氏陰性菌對溶酶體,抗生素不敏感。溶菌酶能溶解細菌細胞壁的肽聚醣,革蘭氏陰性菌的細胞壁含的脂質比肽聚醣多,肽聚醣很少,所以溶菌酶對革蘭氏陰性菌並不起作用。文不對題,我猜是因為革蘭...

平安銀行信用卡為什麼不能通過審核

信用卡的申請審核是綜合評定的,一般在審核中參考的因素會比較多,比如客戶的工作性質 學歷 收入情況 個人穩定性 個人社會信用 其他金融產品使用情況等多個方面的狀況。如本次申請未通過,可在3 6個月後重新提出申請。申請地點 1,當地銀行網點 2,當地銀行信用卡中心工作人員 申請條件 1,年滿十八周歲 2...

為什麼c語言用eecl執行bashshell指令碼會出現

請教各位,我在乙個c程式中使用execv執行乙個shell指令碼,總是報 exec format error,部分 如下 char arg 2 int child fork if child 0 test.sh是shell指令碼,應該是由shell解釋執行的。而它本身只是乙個純文字檔案,不可以象可執...