二維數(shù)組的本質(zhì)還是一位數(shù)組
成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、成都網(wǎng)站制作、溫宿網(wǎng)絡(luò)推廣、微信小程序、溫宿網(wǎng)絡(luò)營銷、溫宿企業(yè)策劃、溫宿品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供溫宿建站搭建服務(wù),24小時服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com
返回數(shù)組指針就可以
int a[3][10];//假設(shè)全局
int * func()
{
return a; //返回的就是數(shù)組的指針
}
int main(void)
{
int *b;
b=func(); //這里b就指向數(shù)組地址
return 0;
}
C語言中函數(shù)指針與普通指針沒什么差別,只是指向的內(nèi)容不同而已。主要作用:
1、實現(xiàn)面向?qū)ο缶幊讨械亩鄳B(tài)性。
2、回調(diào)函數(shù)。
函數(shù)指針是指向函數(shù)的指針變量。因此“函數(shù)指針”本身首先應(yīng)是指針變量,只不過該指針變量指向函數(shù)。這正如用指針變量可指向整型變量、字符型、數(shù)組一樣,這里是指向函數(shù)。
C在編譯時,每一個函數(shù)都有一個入口地址,該入口地址就是函數(shù)指針?biāo)赶虻牡刂?。有了指向函?shù)的指針變量后,可用該指針變量調(diào)用函數(shù),就如同用指針變量可引用其他類型變量一樣,在這些概念上是大體一致的。
函數(shù)指針有兩個用途:調(diào)用函數(shù)和做函數(shù)的參數(shù)。
不存在正規(guī)與不正規(guī)問題,但前一種寫法(a=ACC(22,33); )可讀性要更好一些。
函數(shù)指針告訴CPU下一步需要執(zhí)行哪里的代碼的指針, 一數(shù)組十分相像.
#include?stdio.h
void?function(int?i,?double?d)????//一個函數(shù)的聲明
{
printf("函數(shù)運行,?%d,?%lf\n",?i,?d);
}
void?AnotherFunction(int?i,?double?d)????//另外一個函數(shù)聲明
{
printf("又一個函數(shù)運行,?%d,?%lf\n",?i,?d);
}
int?main()
{
void?(*pFun)(int,?double);????//定義了一個函數(shù)指針
int?(*p)(int?,?double);????//用于調(diào)試的函數(shù)指針
pFun?=?function;????//讓這個函數(shù)指針指向第一個函數(shù)
pFun(10,?10.101);????//通過這個函數(shù)指針來調(diào)用第一個函數(shù)
pFun?=?AnotherFunction;????//讓這個函數(shù)指針指向第二個函數(shù)
pFun(20,?20.202);????//通過這個函數(shù)指針來調(diào)用第二個函數(shù)
//若將以下代碼取消注釋,?就會產(chǎn)生錯誤
/*
p?=?function;
p?=?AnotherFunction;
//原因很簡單,?因為p是必須指向一個返回值為int,?第一個參數(shù)為int,?第二個參數(shù)為double的函數(shù),?但是在此代碼中定義的函數(shù)返回值是void
*/
//這個實驗中,?直接用函數(shù)名來賦值了,?是因為函數(shù)名其實就是這個函數(shù)的指針
//而在平常調(diào)用函數(shù)時,?都要加上(),?如:printf("");
//這里,?"()"就相當(dāng)于'*'(就是取值運算符),?printf是函數(shù)指針,?就相當(dāng)于是數(shù)組名,?即數(shù)組的首地址
return?0;
}
標(biāo)準(zhǔn)上說的是
函數(shù)名就是地址了,
按照你的max的說法,其實你的max函數(shù)是這樣定義的
int
(*max)(int,int);
但是標(biāo)準(zhǔn)里說*max這樣太麻煩,于是可以將*max簡寫為max了
所以函數(shù)名就是那個地址
選D
因為第一個參數(shù)是地址傳遞,fun(b,a);中傳入a字符。*c=*c+1將c的值變?yōu)閎字符。主函數(shù)的值改變。
第二個參數(shù)是值傳遞,所以在函數(shù)中d的值為B字符。但是并不影響主函數(shù)的值,所以主函數(shù)輸出a的值是A。b的值是b。