C語言第十四天 陣列指標與函式指標

2021-07-16 10:57:26 字數 756 閱讀 9117

把陣列當作引數傳入函式時

在這個函式中修改陣列中的值

在原函式中列印這個陣列

會發現值已經被修改

原因是:

作業系統會為了節省記憶體而直接去運算元組的原位址

陣列指標:

定義:型別 (*識別符號)[陣列的列數]

int a[2][4]={};

int (*p)[4];

p = a;

與*p的區別:

int a[2][4]={};

int *p;

p = a;(在windows下用vs2013編譯可以通過,但在linux下格式必須為 p = &a  p=&a[0][0]即為首元素位址);

用vs2013分別列印兩個a的值    是乙個相同的位址

但是代表的含義是不同的

用陣列指標指向的a的值為二維陣列的首元素位址

而用指標指向的a的值已經確定為第一行第乙個元素的位址

等價於*(*(p+0)+0) 所以用*p是取到乙個值 而不是位址

所以用*p指向二維陣列取值時

可以使用

*(p+i*列數+第j個)

函式指標:

定義:int (*p)(int,int)

資料型別 (*識別符號)(函式引數列表)

int add(int a,int b)

int (*p)(int a,int b);

p = add;

printf("%d",p(a,b));

GO語言基礎語法之陣列 第十四天

與c語言類似,陣列元素可以通過索引 位置 來讀取 或者修改 索引從 0 開始,第乙個元素索引為 0,第二個索引為 1,以此類推,一維陣列的定義方式 go 語言陣列宣告需要指定元素型別及元素個數,語法格式如下 var variable name size variable type 例如var str...

c語言陣列與指標,函式與指標

學過c語言的人都知道,指標是c語言中比較複雜難理解的乙個知識點,想要理解透徹有些難度,所以在此辨析一些容易混淆的概念,整理了有關指標的知識點。首先,先來看幾個概念。指標變數存放位址的變數。變數指標 變數的位址。所以,我們常常聽到定義乙個指標,實際上是定義乙個指標變數,而不是定義乙個指標,指標既然是位...

C語言函式,陣列與指標

int sum int ar 對應的函式原型sum 獲得了該陣列首元素的位址。但是,該引數並未包含陣列元素個數的資訊,我們有兩種方式讓函式獲得這一資訊。第一,在函式 中直接寫上固定陣列的大小。int sum int ar 該函式上面的定義,限制了智慧型計算10個int型別的元素。第二種方法 把陣列大...