C语言 使用指针对两个变量的数值进行互换
運(yùn)行結(jié)果:
swap函數(shù)中,形參px 和 py 被聲明為“指向int型變量的指針變量”。函數(shù)被調(diào)用時(shí),將&num1 和 &num2復(fù)制到 px 和 py中,指針 px 便指向了 num1 ,指針py 便指向了 num2。由于在指針前面加上指針運(yùn)算符 *,就可以顯示該指針指向的對象,因此 *px是num1的別名,*py是num2的別名。
scanf函數(shù)與printf函數(shù)不同,在使用scanf函數(shù)進(jìn)行讀取時(shí),變量名前必須加上一個(gè)特殊符號(hào)&。
scanf函數(shù)的使命是為主調(diào)函數(shù)中定義的對象保存值。倘若它接收到的純粹是變量的“值”,是無法進(jìn)行保存的。因此,scanf函數(shù)接收的是指針(具有地址的“值”),由該指針?biāo)笇ο蟊4鎻臉?biāo)準(zhǔn)輸入讀到的值。
swap函數(shù)的功能是將兩個(gè)int型整數(shù)進(jìn)行互換,而傳入的卻是指向double型變量的指針。
指針px指向了 double 型變量的 num1,但是 int 型的 *px 卻不能等同于 double 型變量的 num1。
運(yùn)行結(jié)果:
因此,編譯程序時(shí),會(huì)顯示警告信息,運(yùn)行結(jié)果中顯示的也不是正常的值。
總結(jié)
以上是生活随笔為你收集整理的C语言 使用指针对两个变量的数值进行互换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言 使用指针计算两个整数的和与差
- 下一篇: C语言 下标运算符和指针运算符