C C 指標呼叫使用誤區

2021-09-25 09:02:13 字數 664 閱讀 8730

#include

#include

using namespace std;

void

swap_int

(int *a,int *b)

int main

(void

)

執行結果:

這是函式內部:

形參a的值(位址):0x7fffc4ddf2f8 形參b的值(位址):0x7fffc4ddf2f4

*****交換之後******

形參a的值(位址):0x7fffc4ddf2f4 形參b的值(位址):0x7fffc4ddf2f8

函式呼叫完成******end

實際上這裡的a和b被宣告成int型別的指標用於儲存傳進來的位址

單純將位址這兩個形參的值作交換僅僅將這兩個形參變數中儲存的位址值做了交換

這種交換實際上是成功的,但是執行完畢,形參被釋放掉,就毫無作用

將這裡的形參改寫成c和d效果更明顯

int temp;

temp = *a;

*a = *b

*b = temp;

才是對位址中的變數做改變位址的讀寫

函式呼叫完成後返回主函式:

實際上,a和b的值沒有發生交換:1 2

使用指標呼叫函式

指向函式的指標的定義形式 資料型別 指標變數名 函式引數表列 double x,y,z scanf lf lf x,y z max x,y printf max num is lf z 以上是主函式中的內容,表示輸入x,y兩個雙精度浮點數,然後呼叫max函式求出,試執行結果如下 請輸入要比較大小的兩...

C C 使用指標運算元組

在進行如題操作之前,我們先了解一下指標和陣列的本質。1 指標本身是乙個變數,值是乙個儲存單元的位址。2 指標的值可以發生改變。3 多個指標可以指向同一塊儲存單元。4 指標必須有型別,如 int 型別。讀完上面這些話,是不是有點明白指標的意義了。陣列名 本身就是乙個指標常量 不理解 指標常量 的同學,...

Linux使用Python呼叫C C 介面

c 標頭檔案 pyext.h 01 ifndef pyext h 02 define pyext h 03 include 04 05classpyext 06 09 pyext 10 11staticvoidfoo 12 13 14 endif pyext h main.cpp 01 includ...