`

经典指针程序_互换两个数字

阅读更多
# include <stdio.h>
   
void Fairyd_1(int , int );    //定义函数Fairyd_1,形参可以不注明变量,直接定义类型即可。
void Fairyd_2(int *, int *);  //定义函数Fiaryd_2,该函数形参的变量为整型指针。
void Fairyd_3(int *, int *);  //定义函数Fiaryd_3,该函数形参的变量为整型指针。
   
int main(void) {
   int a = 3;
   int b = 5;
   
   Fairyd_1(a, b);
   printf("a = %d, b = %d\n", a, b);
   
   Fairyd_2(&a, &b);  //取a和b的变量地址,要加上&(取地址符)符号。
   printf("a = %d, b = %d\n", a, b);
   
   Fairyd_3(&a, &b);
   printf("a = %d, b = %d\n", a, b);
   system("pause");
   return 0;
}
   
void Fairyd_1(int a, int b){
   int t;
   t = a;
   a = b;
   b = t;
}//定义函数Fairyd_1,不能完成互换功能。因为局部变量只能在本函数内有效。
   
void Fairyd_2(int * p, int * q){
   int * t;//将t也定义为int *类型,这样才能与p和q类型一致。
   t = p;
   p = q;
   q = t;
}
   
void Fairyd_3(int * p, int * q){
   int t;//将t定义为int类型,这样与*p和*q才是同一类型。
   t = *p; //*p代表指针p指向的对象。
   *p = *q;
   *q = t;
}//定义函数Fairyd_3,用指针互换可以完成互换功能。

运行结果:


PS:唠叨一句,今天装上很早之前下载的VC6企业版,才发现这工具着实老太多了,不知道是我下载的版本不对还是真的就那么回事,居然代码格式化都木有!!
  • 大小: 4.6 KB
分享到:
评论

相关推荐

    郝斌—C语言视频教程(全180讲)4

    6. **127_指针7_经典指针程序_互换两个数字**:展示了如何使用指针交换两个变量的值,这是指针实际应用的一个典型例子,展示了指针的灵活性和效率。 7. **128_指针8_星号的三种含义**:解释了星号`*`在C语言中的...

    C语言经典算法87-94.docx

    它定义了一个包含5个元素的整数数组`a`,并使用两个指针`i`和`j`分别从两端向中间遍历数组,交换它们所指向的元素,直至相遇于中间。这样可以实现数组元素的原地反转。 【程序 91】 这个程序展示了如何使用C语言中...

    C++ 程序设计基础(周蔼如,林伟键)课后习题答案

    变量交换指的是将两个变量的值进行互换,例如使用临时变量t来实现a和b的值交换,即t = a; a = b; b = t;。 12. 指针和引用:指针是一种特殊的变量,用于存储内存地址。引用是变量的别名,对引用的操作实际上就是对...

    全国计算机二级C语言程序改错题_100%全中必过.doc

    6. **斐波那契数列**:斐波那契数列是数学上的一个经典序列,其特点是每个数字是前两个数字的和。考生需要掌握递归和迭代两种方法来实现,同时理解递归可能导致的栈溢出问题,因此通常推荐使用迭代。 每个题目都...

    [工学]C语言程序题.doc

    通过遍历两个字符串,将第二个字符串的每个字符添加到第一个字符串的末尾,最后添加空字符`\0`表示字符串结束。 8. **十六进制转十进制**:第八个程序接收一个十六进制的字符串,并将其转换为十进制数值。通过遍历...

    C++字符数组练习题及解答.docx

    本题要求编写程序,比较两个字符串的大小,不允许使用 strcmp 函数。输入分 2 行,每一行均为字符串(不包含空格)。如果第一个字符串大于第二个字符串,则输出 1 ;如果两个字符串大小相等,则输出 0;如果第一个...

    c++程序设计综合练习题-读程序写结果题.doc

    6. 位运算:`sw`宏定义使用异或操作符`^`来交换两个整数的值,异或具有交换性,即`x^=y`后`y^=x`再`x^=y`会使`x`和`y`的值互换。 7. 循环结构:第6题的程序使用了嵌套循环,外层循环控制行数,内层循环控制每行的星...

    C程序范例宝典(基础代码详解)

    实例038 不用strcat连接两个字符串 46 实例039 删除字符串中连续字符 47 实例040 字符升序排列 49 实例041 在指定的位置后插入字符串 50 1.7 函数 51 实例042 求字符串中字符的个数 51 实例043 递归...

    2023年天津工业大学计算机专业C语言经典笔记.doc

    这里通过定义两个指针,一个指向字符串开头,另一个指向结尾,交换它们指向的字符,然后逐步向中间移动,实现字符串的反转。 7. **字符串长度**:获取字符串长度是C语言中常用的操作,可以通过遍历字符串直到遇到...

    初学C语言常用简单程序代码.doc

    使用了临时变量`t`来交换两个数。首先,`a`与`b`的值通过`t`进行交换,接着`a`与`c`再通过`t`交换。这样,`a`、`b`、`c`的值就互换了。注意,这个程序中的`void main()`在标准C语言中是不推荐的,应使用`int main...

    C++程序设计面向对象

    - **函数定义**:`void copy(char str1[], char str2[])` 定义了一个函数 `copy`,接受两个字符数组作为参数。 - **主函数**:在 `main()` 函数中调用了 `copy()` 函数,并通过指针传递了字符串 `str1` 和 `str2` 的...

    经典程序段

    在程序设计中,经常需要将两个变量的值进行互换。最经典的实现方式是借助一个临时变量来完成这一过程。具体步骤如下: 1. 将变量`a`的值赋给临时变量`t`。 2. 将变量`b`的值赋给变量`a`。 3. 最后,将临时变量`t`中...

    《程序设计基础》实验报告5.pdf

    - 编写程序比较两个字符串是否相等,并返回ASCII码差值。这涉及到字符串的基本概念和C语言中的字符串操作函数。 - 实现字符串到十进制数的转换,要求对十六进制数有基本的认识,以及字符串操作中字符和数字转换的...

    The_C_Programming_Language_2nd_edition

    指针和多维数组在某些情况下可以互换使用,但它们的内部实现有所不同。 #### 5.10 命令行参数 命令行参数允许程序接收从操作系统传递的额外信息。 #### 5.11 指向函数的指针 指向函数的指针可以存储函数地址,并...

    《C++程序设计实践教程》(任志鸿版)第14章实验结果.docx

    ### 知识点总结 #### 实验14:数组综合练习 本实验主要涉及C++中的...通过这两个实验,我们不仅学习了如何在C++中处理数组,还了解了矩阵的基本操作以及数组的高级处理技巧。这为更复杂的编程任务奠定了坚实的基础。

    上海计算机二级试题

    - 试题二的两个程序分别涉及字符处理和字符串操作。程序 2.1 使用 switch 语句根据输入字符进行位移并输出;程序 2.2 找出字符串中的最大字符并进行替换。 9. **程序调试与错误修复**: - 试题三中包含的两个程序...

    《你必须知道的495个C语言问题》

    书中列出了C用户经常问的400多个经典问题,涵盖了初始化、数组、指针、字符串、内存分配、库函数、C预处理器等各个方面的主题,并分别给出了解答,而且结合代码示例阐明要点。 《你必须知道的495个C语言问题》结构...

    你必须知道的495个C语言问题

    6.4 既然它们这么不同,那为什么作为函数形参的数组和指针声明可以互换呢? 数组不能被赋值 6.5 为什么不能这样向数组赋值?externchar*getpass();charstr[10];str=getpass("Enterpassword:"); 6.6 既然不能向...

Global site tag (gtag.js) - Google Analytics