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