1、苏小红苏小红C语言大学实用教程课件 制作人苏小红 2C语言大学实用教程课件 制作人苏小红 3C语言大学实用教程课件 制作人苏小红 4C语言大学实用教程课件 制作人苏小红 5 0 内存用户数据区 2000 3 变量 i 2002 6 变量 j 2004 9 变量 k 3010 2000 变量 i_pointer C语言大学实用教程课件 制作人苏小红 6C语言大学实用教程课件 制作人苏小红 7C语言大学实用教程课件 制作人苏小红 8C语言大学实用教程课件 制作人苏小红 9int i,*p;p=&i;int *p;float *q;p=q;int i;float *p;p=&i;int *p;p=1
2、00;指针变量只指针变量只存放地址存放地址!一个指针变量不能一个指针变量不能指向与其类型不同指向与其类型不同的变量的变量!我是真的,我是真的,你猜对了吗?你猜对了吗?应在类型相应在类型相同的指针变同的指针变量之间赋值量之间赋值C语言大学实用教程课件 制作人苏小红 10C语言大学实用教程课件 制作人苏小红 11C语言大学实用教程课件 制作人苏小红 12C语言大学实用教程课件 制作人苏小红 136000600160026003600460056006p-1pp+1C语言大学实用教程课件 制作人苏小红 14C语言大学实用教程课件 制作人苏小红 15C语言大学实用教程课件 制作人苏小红 16错!C语言
3、大学实用教程课件 制作人苏小红 17C语言大学实用教程课件 制作人苏小红 18void Swap(int *x,int *y) int temp; temp = *x; *x = *y; *y = temp;main() int a, b; a = 15; b = 8; Swap( &a, &b ); printf( a=%d,b=%d ,a,b);void Swap(int x,int y) int temp; temp = x; x = y; y = temp;main() int a, b; a = 15; b = 8; Swap(a, b); printf( a=%d,b=%d ,a,
4、b);程序程序 1程序程序 2 主调函数主调函数被调被调函数函数实实 参参形形 参参C语言大学实用教程课件 制作人苏小红 19主调函数主调函数被调函数被调函数1515ab实实 参参形形 参参88xyabxyC语言大学实用教程课件 制作人苏小红 20图7-3 Swap函数调用前后参数变化的示意图1581581581515881581515a) 调用Swap函数(b)执行Swap函数c) 从Swap函数返回temp xy bmain函数Swap函数aaatemptempxxy y bbC语言大学实用教程课件 制作人苏小红 21主调函数主调函数被调函数被调函数&a&a实实 参参形形 参参&b&bxy
5、abxy15 ab8C语言大学实用教程课件 制作人苏小红 22图7-5 用指针变量作函数参数实现两数互换函数的示意图158815&a&b&a&b15(a) 调用Swap函数 (b) 执行Swap函数 a a b b *x *x *y *y y y x x &a &b main函数 Swap函数 temptempC语言大学实用教程课件 制作人苏小红 23C语言大学实用教程课件 制作人苏小红 24C语言大学实用教程课件 制作人苏小红 25C语言大学实用教程课件 制作人苏小红 26C语言大学实用教程课件 制作人苏小红 27C语言大学实用教程课件 制作人苏小红 28C语言大学实用教程课件 制作人苏小红
6、 29C语言大学实用教程课件 制作人苏小红 30C语言大学实用教程课件 制作人苏小红 31C语言大学实用教程课件 制作人苏小红 32C语言大学实用教程课件 制作人苏小红 33C语言大学实用教程课件 制作人苏小红 34C语言大学实用教程课件 制作人苏小红 35下标: 0 1 2 3 4 5 6 7 8 9 10 11 HelloChina0HelloChina0fromitoi下标移动方向toi=0fromto结束拷贝ii+i HelloChina0HelloChina0*from* to指针移动方向指针移动方向*to=0tofrom+fromfromto+toC语言大学实用教程课件 制作人苏小
7、红 36C语言大学实用教程课件 制作人苏小红 37C语言大学实用教程课件 制作人苏小红 38C语言大学实用教程课件 制作人苏小红 39C语言大学实用教程课件 制作人苏小红 4060006001600260036004600560066007a0a1a2a3aa+1a+260006001600260036004600560066007a0a1a2a3app+p+C语言大学实用教程课件 制作人苏小红 41C语言大学实用教程课件 制作人苏小红 42 1 3 5 7 9a0 a1 a2 a3 a4 a5插入位置pos x=4x插入前: 1 3 4 5 7 9 x插入后:插入元素xa0 a1 a2 a3
8、 a4 a5C语言大学实用教程课件 制作人苏小红 43C语言大学实用教程课件 制作人苏小红 44一维数组a a1 a00 a01 a02 a03 a10 a11 a12 a13 a20 a21 a22 a23行地址列地址列地址列地址a0+0 a0+1 a0+2 a0+3a2+0 a2+1 a2+2 a2+3a1+0 a1+1 a1+2 a1+3一维数组a2一维数组a1一维数组a0a0 a2 a+0 &a0 a+1 &a1 a+2&a2 C语言大学实用教程课件 制作人苏小红 45a00a01a02a10a11a12aa0+0a+1a1+0a0+1a0+2&a00&a10&a11a1+1&a12&
9、a01&a02 a00 a0a01a02a10 a1 a11a12 a a1+2 a23;C语言大学实用教程课件 制作人苏小红 46一维数组a a1 a00 a01 a02 a03 a10 a11 a12 a13 a20 a21 a22 a23行地址列地址列地址列地址a0+0 a0+1 a0+2 a0+3a2+0 a2+1 a2+2 a2+3a1+0 a1+1 a1+2 a1+3一维数组a2一维数组a1一维数组a0a0 a2 a+0 &a0 a+1 &a1 a+2&a2 C语言大学实用教程课件 制作人苏小红 47Sunday0Monday0Tuesday0Wednesday0Thursday0
10、Friday0Saturday0C语言大学实用教程课件 制作人苏小红 48C语言大学实用教程课件 制作人苏小红 49C语言大学实用教程课件 制作人苏小红 50C语言大学实用教程课件 制作人苏小红 51a00a01a02a10a11a12pp+C语言大学实用教程课件 制作人苏小红 52a00a01a02a10a11a12pp+C语言大学实用教程课件 制作人苏小红 53C语言大学实用教程课件 制作人苏小红 54C语言大学实用教程课件 制作人苏小红 55C语言大学实用教程课件 制作人苏小红 56 name0 P a s c a l 0 0 0 0 name1 B a s i c 0 0 0 0 0
11、name2 F o r t r a n 0 0 0 name3 J a v a 0 0 0 0 0 0 name4 V i s u a l C 0 0 name0 B a s i c 0 0 0 0 0 name1 F o r t r a n 0 0 0 name2 J a v a 0 0 0 0 0 0 name3 P a s c a l 0 0 0 0 name4 V i s u a l C 0 0 C语言大学实用教程课件 制作人苏小红 57C语言大学实用教程课件 制作人苏小红 58指针数组ptr 字符串排序前Pascal0Basic0Fortran0Java0Visual C0ptr0p
12、tr1ptr2ptr3ptr4指针数组ptr 字符串排序后Pascal0Basic0Fortran0Java0Visual C0ptr0ptr1ptr2ptr3ptr4C语言大学实用教程课件 制作人苏小红 59C语言大学实用教程课件 制作人苏小红 60 变量 ipp 变量 ip 变量 i &ip &i *ipp *ipp 5 &ip &i C语言大学实用教程课件 制作人苏小红 61PascalBasicFortranJavaptr指针数组指针数组字符串字符串nameVisual CC语言大学实用教程课件 制作人苏小红 62C语言大学实用教程课件 制作人苏小红 63echo.exeprogrammingisfunptr指针数组指针数组字符串字符串nameC语言大学实用教程课件 制作人苏小红 64C语言大学实用教程课件 制作人苏小红 65C语言大学实用教程课件 制作人苏小红 66C语言大学实用教程课件 制作人苏小红 67C语言大学实用教程课件 制作人苏小红 68