指针变量 初级
来源:互联网 发布:淘宝细节图尺寸 编辑:程序博客网 时间:2024/05/22 14:51
1.通过地址能找到所需的变量单元,地址指向该单元变量。
2.一个变量的地址称为该变量的“指针”
3.一个变量专门存放另一个变量地址(即指针),称为“指针变量”
4.定义指针变量一般形式 : int *pointer_1,*pointer_2;
Int为基类型 指针变量可指向的变量类型。
5.指针变量前面的“*“表示为该变量的类型为指针型变量
6.a是指向整型数据的指针变量(正确读法)
一、输入两个整数,按先大后小的顺序输出两个数
#include<stdio.h>
int main()
{
int*p,a,b,*p1,*p2;
printf("intputtwo numbers:");
scanf("%d%d",&a,&b);
p1=&a;p2=&b;
if(b>a)
{
p=p1;
p1=p2;
p2=p;
}
printf("maxnumber is %d",*p1);
}
二、现在用函数处理,而且用指针类型的数据作函数参数。
#include<stdio.h>
int main()
{
voidswap(int *,int *);
inta,b,*pointer_1,*pointer_2;
printf("pleaseinput two numbers :\n");
scanf("%d%d",&a,&b);
pointer_1= &a;
pointer_2= &b;
if(b>a)
{
swap(pointer_1,pointer_2);
}
printf("max= %d,min = %d",*pointer_1,*pointer_2);
return0 ;
}
void swap(int *p1,int *p2)
{
intp;
p=*p1;
*p1=*p2;
*p2=p;
}
函数中不可写成*p=*p1;因为由于未给p赋值,因此p中并无确定的值(它的值是不可预见的),所以指向的单元也是不可预见的。所以,对*p赋值就是向一个未知的存储单元赋值,不可以。
如果写成swap(int x,int y)
{
inttemp;
temp=x;
x=y;
y=temp;
}
注意1:传递值到函数形参,并未影响实参,形参交换之后便释放了。
注意2:不能企图通过改变指针形参的值而使指针实参的值改变。
注意3:不可能通过执行调用函数来改变实参指针变量的值,但是可以改变实参指针变量所指向变量的值。
例三:输入3个整数a,b,c,要求由大到小的顺序将他们输出,用函数实现。
#include<stdio.h>
int main()
{
voidexchange(int *p11,int *p22,int *p33);
inta,b,c,*p1,*p2,*p3;
printf("pleaseinput three numbers:");
scanf("%d%d %d",&a,&b,&c);
p1=&a;p2=&b;p3=&c;
exchange(p1,p2,p3);
printf("theorder is :%d >%d >%d",a,b,c);
return0;
}
void exchange(int *p11,int *p22,int *p33)
{
voidswap(int *q1,int *q2);
if(*p11<*p22)
swap(p11,p22);
if(*p11<*p33)
swap(p11,p33);
if(*p22<*p33)
swap(p22,p33);
}
void swap(int *q1,int *q2)
{
inttemp;
temp=*q1;
*q1=*q2;
*q2=temp;
}
总结:用指针做连接,改变数值(实参指针)
- 指针变量 初级
- Golang初级系列教程-内存变量指针
- 指针--初级
- 指针初级
- 变量,指针,指针变量
- C指针初级篇
- 关于指针(初级)
- 指针初级的应用
- c语言指针初级
- 链表,指针初级学习心得
- 初级指针探索
- 指针初级教学
- 指针变量
- 指针变量
- 指针变量
- 指针变量
- 指针变量
- 指针变量
- 【POJ 2752 Seek the Name, Seek the Fame kmp】kmp&nex应用
- CoreText实现图文混排
- <c++>时间输出
- JavaWeb学习总结(四十八)——模拟Servlet3.0使用注解的方式配置Servlet
- Oracle定时计划快速使用
- 指针变量 初级
- Oracle定时计划快速使用
- JavaWeb学习总结(四十九)——简单模拟Sping MVC
- java设计模式之享元模式
- Java工程师成神之路
- JavaWeb学习总结(五十一)——邮件的发送与接收原理
- iOS FMDB数据库加密相关
- 数据库不能open下查看undo段的名字
- JavaWeb学习总结(五十二)——使用JavaMail创建邮件和发送邮件