12-黑马程序员------C 语言学习笔记--- C语言指针与函数
黑馬程序員------<a href="http://www.itheima.com" target="blank">Java培訓(xùn)、Android培訓(xùn)、iOS培訓(xùn)、.Net培訓(xùn)</a>、期待與您交流! -------
六 指針與函數(shù)
01 指針作為函數(shù)參數(shù)
指針作為實(shí)參時(shí),與普通變量一樣,也是采用單向的值傳遞方式,即將指針變量的值(該值是一個(gè)地址)傳遞給被調(diào)函數(shù)的形參(必須也是一個(gè)指針變量)。由于形參接受實(shí)參傳遞的值是一個(gè)地址,這樣兩者就指向了同樣的變量。
*如果想要C語(yǔ)言中得函數(shù)調(diào)用實(shí)現(xiàn)多個(gè)值的改變,可以設(shè)計(jì)一個(gè)形參是指針變量的被調(diào)函數(shù),這樣主調(diào)函數(shù)的實(shí)參指針與被調(diào)函數(shù)的形參指針相結(jié)合,根據(jù)形參指針與實(shí)參指針指向同一地址的原理,就可以通過(guò)改變?cè)摰刂分械弥?#xff0c;實(shí)現(xiàn)主調(diào)函數(shù)與被調(diào)函數(shù)之間的數(shù)據(jù)傳遞,從而使被調(diào)函數(shù)實(shí)際返回多個(gè)值到主調(diào)函數(shù)。
// 輸入兩個(gè)整數(shù),用自定義函數(shù)實(shí)現(xiàn)這兩個(gè)值的交換,并在主函數(shù)中輸出交換后的結(jié)果. #include <stdio.h> void swap(int *x,int *y); //函數(shù)聲明int main() {int a,b; // 定義兩個(gè)需要交換的整數(shù)int *p1,*p2; // 定義兩個(gè)指向int類(lèi)型的指針 printf("請(qǐng)輸入兩個(gè)數(shù):\n"); // 輸入兩個(gè)整數(shù)scanf("%d%d",&a,&b); // 接受兩個(gè)整數(shù) printf("交換前a=%d,b=%d\n",a,b); // 輸出交換前的整數(shù) p1 = &a; // 使p1指向了xp2 = &b; // 使p2指向了yswap(p1,p2); // 調(diào)用函數(shù)交換a和bprintf("交換以后:a=%d,b=%d\n",a,b);}void swap(int *x,int *y) {int temp;temp = *x;*x = *y;*y = temp; }?
02 返回指針值的函數(shù)
一般形式:
數(shù)據(jù)類(lèi)型 *函數(shù)名(形參列表)
{
??? 函數(shù)體;
}
?
03 指向函數(shù)的指針變量
可以把函數(shù)的首地址賦予一個(gè)指針變量,使該指針變量指向該函數(shù),然后通過(guò)指針變量即可找到并調(diào)用這個(gè)函數(shù),把這種指向函數(shù)的指針變量叫做函數(shù)指針變量。
一般形式:
數(shù)據(jù)類(lèi)型 (*指針變量名)(函數(shù)形參列表)
#include <stdio.h>int main() {int a = 4474;int *p = &a;// p = &a;*p = 2;printf("%d\n",*p);// 變量類(lèi)型 變量名;// 格式:變量類(lèi)型 *變量名;// 定義了一個(gè)指針變量p// 指針變量只能存儲(chǔ)地址// 指針就一個(gè)作用:能夠根據(jù)一個(gè)地址值,訪問(wèn)對(duì)應(yīng)的存儲(chǔ)空間// 指針變量p前面的int:指針變量p只能指向int類(lèi)型的數(shù)據(jù)return 0; }?
轉(zhuǎn)載于:https://www.cnblogs.com/iceshan/p/4492524.html
總結(jié)
以上是生活随笔為你收集整理的12-黑马程序员------C 语言学习笔记--- C语言指针与函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 比较全的 POM.xml
- 下一篇: ShowAllPic--图片