C语言指针问题 10
#include<stdio.h>intmain(){voidexchange(int*q1,int*q2,int*q3);inta,b,c,*p1,*p2,*p3;pr...
#include<stdio.h>
int main()
{
void exchange(int *q1,int *q2,int *q3);
int a,b,c,*p1,*p2,*p3;
printf("please enter three numbers:");
scanf("%d,%d,%d",&a,&b,&c);
p1=&a;p2=&b;*p3=&c;
exchange(p1,p2,p3);
printf("The order is:%d,%d,%d\n",a,b,c);
return 0;
}
void exchange(int *q1,int *q2,int *q3)
{
void swap(int *pt1,int *pt2);
if(*q1<*q2) swap(q1,q2);
if(*q1<*q3) swap(q1,q3);
if(*q2<*q3) swap(q2,q3);
}
void swap(int *pt1,int *pt2)
{
int temp;
temp=*pt1;
*pt1=*pt2;
*pt2=temp;
}
为什么输入三个数据后,提示有问题,运行不了! 展开
int main()
{
void exchange(int *q1,int *q2,int *q3);
int a,b,c,*p1,*p2,*p3;
printf("please enter three numbers:");
scanf("%d,%d,%d",&a,&b,&c);
p1=&a;p2=&b;*p3=&c;
exchange(p1,p2,p3);
printf("The order is:%d,%d,%d\n",a,b,c);
return 0;
}
void exchange(int *q1,int *q2,int *q3)
{
void swap(int *pt1,int *pt2);
if(*q1<*q2) swap(q1,q2);
if(*q1<*q3) swap(q1,q3);
if(*q2<*q3) swap(q2,q3);
}
void swap(int *pt1,int *pt2)
{
int temp;
temp=*pt1;
*pt1=*pt2;
*pt2=temp;
}
为什么输入三个数据后,提示有问题,运行不了! 展开
展开全部
内存对齐的缘故。
p_buf 作为一个指针,它的值是内存的某个字节的地址。
如果想要把 p_buf 强制转换成一个 unsigned int*类型的指针,
需要满足一个必要条件,就是 p_buf 的值必须能够被4整除。(之所以是4,是因为 unsigned int 是要占4个字节的)。
p_buf 作为一个指针,它的值是内存的某个字节的地址。
如果想要把 p_buf 强制转换成一个 unsigned int*类型的指针,
需要满足一个必要条件,就是 p_buf 的值必须能够被4整除。(之所以是4,是因为 unsigned int 是要占4个字节的)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询