本文共 1696 字,大约阅读时间需要 5 分钟。
该C实例是一个比较简单的实例,但是在该实例中,重点介绍了C语言中比较常用的也是容易出错的指针变量,其中包括指针变量的赋值,指针变量的运算等等。该实例实现了通过使用指针变量来比较3个整形数据,使其从小到大排列,实现比较简单,下面附上我的代码:
#include/** * 通过指针比较三个整数的大小 * @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是一个指针变量,他指向一个指向整型数据的指针变量 */}