关于指针

时间:2008-05-22 05:02:00   来源:论坛整理  作者:  编辑:chinaitzhe
下面的程序是定义两个整形变量用于输入整数,定义三个指针变量用于记录和交换两个整数变量的地址,最后输出,但不知道哪个地方错了,始终不能得到我想得出的结果
#include <iostream>
using namespace std;
int main()
{
int a,b; /* 定义a,b两个整形变量用于输入两个整数 */
int *point_1,*point_2,*temp_point; /* 定义三个指针变量 */
scanf("%d,%d",&a,&b); /* 格式化输入a,b的值 */
point_1=&a; /* 把指针变量point_1的值指向变量a的地址 */
point_2=&b; /* 把指针变量point_2的值指向变量b的地址 */
if (a <b)
{
temp_point=point_1; /* 这里的temp_point是用于临时存储point_1的值也就是变量a的地址的 */
point_1=point_2; /* 把point_2的值赋予point_1 */
point_2=temp_point;

}
printf("%d,%d",*point_1,*point_2);
}
网友回复:是scanf的问题。
改成这样就好了:
scanf("%d",&a);
scanf("%d",&b);

网友回复:不改代码也行,输入a和b的时候要按照scanf的格式来写,比如:
1,100
网友回复:失误,C语言的知识都丢了~~呵呵,谢谢了
网友回复:LZ要学会自己调试啊,比如gdb或者IDE里的debug功能,程序大了一定会用到的。
这种小程序,加几个printf也可以:
#include <iostream>
using namespace std;
int main()
{
int a,b; /* 定义a,b两个整形变量用于输入两个整数 */
int *point_1,*point_2,*temp_point; /* 定义三个指针变量 */
scanf("%d,%d",&a,&b); /* 格式化输入a,b的值 */
printf("%d,%d\n", a, b); //////////////////
point_1=&a; /* 把指针变量point_1的值指向变量a的地址 */
point_2=&b; /* 把指针变量point_2的值指向变量b的地址 */
printf("%d,%d\n",*point_1,*point_2); //////////////////
if (a <b)
{
temp_point=point_1; /* 这里的temp_point是用于临时存储point_1的值也就是变量a的地址的 */
point_1=point_2; /* 把point_2的值赋予point_1 */
point_2=temp_point;

}
printf("%d,%d",*point_1,*point_2);
}
关键字:指针,

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面