¥指针类型符&:取地址运算符201ip指针“间接访问”?:运算符int i=200, x,y,w,z;int *ip;200Xip=&i;x=*ip;205yy=*ip+5;w=++*ip;W201z=*ip++;z201kt91
11 int i=200, x,y,w,z; int *ip; ip=&i ; x=*ip; y=*ip+5; w=++*ip; z=*ip++; i 200 x ip 200 * : 指针类型符 &: 取地址运算符 。 * :指针“间接访问”运算符 y 205 wz 201 201 201 kt91
D:2022-2023-1/Ccodelpointerlpointertest/Deb#include<stdio.h>a=3void mainO&a=1703724&p=1703720int a=3;p=1703724int *p=&a;*p=3printf("a=%d\n",a);Press any key to continueprintf("&a=%d\n",&a);printf("&p=%d\n",&p):aprintf("p=%d\n",p):31703724printf("*p=%d\n"*p):17037241703720pp1703724170372031703724akt92
#include<stdio.h> void main() { int a=3; int *p=&a; printf("a=%d\n",a); printf("&a=%d\n",&a); printf("&p=%d\n",&p); printf("p=%d\n",p); printf("*p=%d\n",*p); } a 3 p 1703724 1703724 1703720 p 1703720 1703724 a 1703724 3 kt92
9.2.4指针变量作为函数参数函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中。【例9-3】使输入的两个整数按大小顺序输出。现用函数处理,而且用指针类型的数据作函数参数。#include<stdio.h>void swap(int *p1,int *p2)1交换两个指针变量里的内容(inttemp;temp=*p1;*p1=*p2;voidmain()*p2=temp;Yinta,b;int *pointer 1,*pointer_2;scanf("%d,%d",&a,&b);pointer_1=&a;pointer2=&b;if(a<b)swap(pointer_1,pointer_2);c93printf("\n交换后的结果:%d,%d\n",a,b)13
13 9.2.4 指针变量作为函数参数 函数的参数不仅可以是整型、实型、字符型等数据,还可以是 指针类型。它的作用是将一个变量的地址传送到另一个函数中。 【例9-3】使输入的两个整数按大小顺序输出。现用函数处理,而且用 指针类型的数据作函数参数。 #include <stdio.h> void swap(int *p1,int *p2) //交换两个指针变量里的内容 { int temp; temp=*p1; *p1=*p2; *p2=temp; } void main() { int a,b; int *pointer_1,*pointer_2; scanf("%d,%d",&a,&b); pointer_1=&a; pointer_2=&b; if(a<b) swap(pointer_1,pointer_2); printf("\n交换后的结果:%d,%d\n",a,b); } c93
scanf("%d%d",&a,&b);9,12pointer_1=&a;pointer_2=&b;if(a<b)swap(pointer_1,pointer_2);printf("\n交换后的结果:%d,%d\n",a,b)Main()swap()交换MainOP1P1Pointer_1aaaPointer_1a9&a912&a&a12&abP2P2Pointer_2bbbPointer 2&b12129&b&b&b9void swap(int *p1,intt*p2)inttemp;temp=*p1;可以实*p1=*p2;现交换*p2=temp;1
Pointer_1 &a a 9 Pointer_2 &b b 12 Main() P1 &a a 9 P2 &b b 12 swap() P1 &a a 12 P2 &b b 9 交换 Pointer_1 &a a 12 Pointer_2 &b b 9 Main() 9,12 void swap(int *p1,int *p2) { int temp; temp=*p1; *p1=*p2; *p2=temp; } 可以实 现交换 scanf("%d,%d",&a,&b); pointer_1=&a; pointer_2=&b; if(a<b) swap(pointer_1,pointer_2); printf("\n交换后的结果:%d,%d\n",a,b);
【例9-4】请注意,不能企图通过改变指针形参的值而使指针实参的值改变#include<stdio.h>void swap(int *p1,int *p2)( int *p:p=pi;p1=p2;p2=p;人void main()1int a,b;int*pointer_1,*pointer_2;scanf("%d,%d",&a,&b);pointer_1=&a;pointer_2=&b;if(a<b) swap(pointer_1,pointer_2);printf("n交换后的结果:%d,%d\n",*pointer1,*pointer2)15
15 【例9-4】请注意,不能企图通过改变指针形参的值而使指针 实参的值改变。 #include <stdio.h> void swap(int *p1,int *p2) { int *p; p=p1; p1=p2; p2=p; } void main() { int a,b; int *pointer_1,*pointer_2; scanf("%d,%d",&a,&b); pointer_1=&a;pointer_2=&b; if(a<b) swap(pointer_1,pointer_2); printf("\n交换后的结果:%d,%d\n",*pointer_1,*pointer_2); }