#include "stdio.h"
void main()
{void exchange(int *p1,int *p2,int *p3);
int a,b,c,*p1,*p2,*p3;
scanf("%d%d%d",&a,&b,&c);
p1=&a;p2=&b;p3=&c;
exchange(p1,p2,p3);
printf("%d ,%d ,%d\n",*p1,*p2,*p3);
}
void exchange(int *p1,int *p2,int *p3)
{void swap(int *p1,int *p2);
if(*p1>*p2)swap(p1,p2);
if(*p1>*p3)swap(p1,p3);
if(*p2>*p3)swap(p2,p3);
}
void swap(int *p1,int *p2)
{int t;
t=*p1;*p1=*p2;*p2=t;}
我想问的是if(*p2>*p3)swap(p2,p3);
类似这一行,为什么是swap(*p2,*p3);?
求指点 详细加分
搞错了 为什么是swap(p2,p3);
c语言指针问题,求解答
首先 函数指针的定义 A、D定义为:A 定义指向函数的指针pf,所指向的函数参数为空,无返回值 D 定义指向函数的指针pf,函数参数为int,char型(不符题意,题目为int,char*),无返回值 B、D的定义为:定义函数pf,函数参数为空,返回类型为void *(void 型指针)单从函数指针的定义可排除BCD。其次...
C语言指针问题。
(1) ++(*pointer)是先取值,再自增,当前pointer指向的是位置arr[3],取值后是2,*pointer的结果是2,2再自增,当然会得出3。值得说明的是,这个括号是可以省略的,此处括号只起到增加程序可读性的作用。(2)*(pointer-2)是先移动指针,再取值。pointer-2是把指针从当前位置arr[3]回退两...
C语言指针问题(求高人指点啊)
第二个错在 p=*q;看来你还没理解指针变量,书上明确定义指针变量只能用来存放地址!而*q是一个具体的值(数或者字符什么的)!第三个隐性错误!*p=a;从你的定义看,指针p未被初始化!(p=*q是错误的)如果你把p=*q改成p=q那么*p=a;就没问题了。如果你删了p=*q,那就错咯!3 int a=...
c语言 指针问题 有点看不懂 能帮忙解答一下正确答案中的 每一步运算...
然后定义了一个指针变量 int *p=&t ,指针p指向结构体变量t,要调用结构体中的成员变量,有三种方法;t.成员名(如 t.num)(*p).成员名(如(*p).num)p->成员名(如 p->num)答案为B
C语言指针问题(初学者)
1.概念问题:指针是指存放地址值的变量或常量;指针与一般变量或常量的区别,在于它不直接存储数值,而是存放被存储数值的地址,属于间接存放,所以不少初学者感觉学习困难。比如:int a=2,b,c,*ptr; ptr=&a;表示将指针ptr指向变量a,存放a的地址,假设是2000H,而指针变量ptr本身也要有地址,假...
C语言指针问题
一、如有定义char y[4]= "321"则表达式 *y+2的值是'5' 。分析:y是字符串数组首元素'3'的地址,*y的值就是字符'3',再加上2,就是字符'5'(也可以说是字符'5'的ASC码值)。二、 如有定义char z[2][4]={"MAT", "LAB"};,则表达式*(*z+2)的值是 'T'。分析:z是二维字符...
请教C语言指针问题,本人智商不够
(char*) 是强制类型转换的意思,就是把变量a 强制转换成 char类型的指针,而不用在乎a本身是什么类型。这就是区别。char * a 就是定义一个char 类型的指针变量,名字为a。a(int) 可以作为一个函数的声明,这个函数的返回值为 int* (i在C中,没有声明的变量类型都为int类型) ,有一个int...
C语言中的指针问题到底是怎么回事~
在指针的算术运算中,指针所指向的类型有很大的作用。 指针的类型(即指针本身的类型)和指针所指向的类型是两个概念。当你对C越来越熟悉时,你会发现,把与指针搅和在一起的“类型”这个概念分成“指针的类型”和“指针所指向的类型”两个概念,是精通指针的关键点之一。我看了不少书,发现有些写得差的书中,就把...
C语言的数组和指针问题,谢谢高手的解答!
总结,问题的关键在于,数组名相当于一个指向于这个数组第一个元素的指针。3)所以,int A[2][3][4]={0};A是一个三维数组,其中A[0]和A[1]都是它的元素,A[0]是第一个元素。所以, A是一个三级指针,指向了这个数组的第一个元素A[0],而A[0]是一3*4的二维数组。而A[0]是一个...
C语言指针问题,求高手解答
char* ss = "0123456789";要求这种字符串的长度是不能用sizeof的,如果用sizeof它计算出来的会是这个指针的长度,在32系统下,指针一般都是4个字节,所以,结果是4。计算字符串的长度,可以使用库函数strlen来计算,它计算出来的长度不包含字符串结束符\\0。有了这个思路,其实你可以自己写一个函数来...