該C實例是一個比較簡單的實例,但是在該實例中,重點介紹了C語言中比較常用的也是容易出錯的指針變量,其中包括指針變量的賦值,指針變量的運算等等。該實例實現了通過使用指針變量來比較3個整形數據,使其從小到大排列,實現比較簡單,下面附上我的代碼:
~~~
#include <stdio.h>
/**
* 通過指針比較三個整數的大小
* @brief main
* @return
*/
/**
* 指針,即為變量的地址;指針變量,即數值為
* 指向變量地址的變量
* 指針變量的類型:
* 對指針變量的類型說明包括3個內容
* 1:指針類型說明,即定義變量為一個指針變量
* 2:指針變量名
* 3:變量值(指針)所指向的變量的數據類型
* 其一般形式為:
* 類型說明符 *變量名;
* 其中,*表示這是一個指針變量,變量名即為定義的指針變量名,
* 類型說明符表示本指針變量所指向的變量的數據類型
*
* 指針變量的賦值:
* C中提供了地址運算符"&"來表示變量的地址
* 要把整型變量a的地址賦予p可以有下面兩種方式:
* (1)指針變量初始化方法
* int a;
* int *p = &a;
* (2)賦值語句的方法
* int a;
* int *p
* p = &a;
*
* 指針變量的元算:
* 1:指針運算法
* (1)取地址運算符&
* (2)取內容運算符*
* 2:指針變量的元算
* (1)賦值運算
* (2)加減運算符
*/
int main(void)
{
int x,y,z; //定義3個int類型的變量
int *xp = &x, /*定義指針變量xp,并賦值為x的地址,使其指向x*/
*yp = &y, /*定義指針變量yp,并賦值為y的地址,使yp指向y*/
*zp = &z; /*定義指針變量zp,并賦值為z的地址,是zp指向z*/
int t;
printf("Please input x,y,z:\n");
scanf("%d%d%d",xp,yp,zp); /* 通過變量的指針,為變量輸入值 */
if(*xp > *yp){ /*通過指向變量的指針引用變量的值*/
t = *xp;
*xp = *yp;
*yp = t;
}
if(*xp > *zp){
t = *xp;
*xp = *zp;
*zp = t;
}
if(*yp > *zp){
t = *yp;
*yp = *zp;
*zp = t;
}
printf("x = %d,y = %d,z = %d\n",x,y,z);
return 0;
/**
* 與指針有關的類型:
* int i; //定義整型變量i
* int *p; //p為指向整型數據的指針變量
* int a[n]; //定義數組a,他有n個元素
* int *p[n]; //定義指針數組p,他有n個指向整型數據的指針元素組成
* int (*p)[n]; //p為指向n個元素的一維數組的指針變量
* int f(); //f為返回整型函數值的函數
* int *p(); //p為返回一個指針的函數,該指針指向整數型數據
* int (*p)(); //p為指向函數的指針,該函數返回一個整數值
* int **p; //p是一個指針變量,他指向一個指向整型數據的指針變量
*/
}
~~~
- 前言
- 實例一:HelloWorld
- scanf函數學習
- 實數比較
- sizeof()保留字獲取類型的大小
- 自增/自減學習
- C學習if條件判斷和for循環
- C實現的九九乘法表
- C實現一個比較簡單的猜數游戲
- 使用C模擬ATM練習switch..case用法
- 記錄一個班級的成績練習一維數組
- C數組實現矩陣的轉置
- C二維數組練習
- 利用數組求前n個質數
- C實現萬年歷
- C實現數組中元素的排序
- C實現任意進制數的轉化
- C判斷一個正整數n的d進制數是否是回文數
- C使用遞歸實現前N個元素的和
- 鋼材切割問題
- 使用指針比較整型數據的大小
- 指向數組的指針
- 尋找指定元素
- 尋找相同元素的指針
- 整數轉換成羅馬數字
- 字符替換
- 從鍵盤讀入實數
- C實現字符行排版
- C實現字符排列
- C實例--判斷一個字符串是否是回文數
- 通訊錄的輸入輸出
- 撲克牌的結構定義
- 使用“結構”統計學生成績
- 報數游戲
- 模擬社會關系
- 統計文件中字符個數
- C實現兩個文件的內容輸出到同一個屏幕