该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实现两个文件的内容输出到同一个屏幕