- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c语言课件lec08-1讲义
x = -42; y = 163 -42 163 1000 1004 1008 1012 x y p1 p2 p1 = x; p2 = y; -42 163 1000 1004 1000 1004 1008 1012 x y p1 p2 * 8.1 指针 *p1 = 17; p1 = p2; -42 163 1004 1004 1000 1004 1008 1012 x y p1 p2 17 163 1000 1004 1000 1004 1008 1012 x y p1 p2 * 8.1 指针 Analyzing *(a) /*该表达式引用的是变量a的内容*/ (*p1) /*该表达式的值代表的是变量a的地址*/ int a, b; int *p1, *p2; p1 = a; p2 = b; * 8.1 指针 main( ) { int a , b , c ; a=5 ,b=10 ; c=a+b; printf(“%d,%d,%d”, a,b,c); } main( ) { int a , b , c, *pc ; a=5 ,b=10 ; pc=c; c=a+b; printf(“%d,%d,%d”, a,b,*pc); } /*Direct access c*/ /* Indirect access c by pointer pc */ Compare: * 指针变量的特殊性 : (1)指针变量的内容只能是地址,而不能是数据 int x, *p; float y; p = x; /*错误,指针p的内容应为地址*/ p = y; /*错误,必须用相同基类型的变量地址对指针赋值*/ p = x; /*正确,用相同基类型的变量的地址对指针 变量进行初始化 */ * 指针变量的特殊性 : (2)指针变量必须经初始化后才能使用 #include stdio.h void main() { int x, *p; ? x = 10; *p = x; printf(%d\n,*p); } /*错误,使用未初始化的指针p, p指向不明就对其进行写操作*/ * 指针变量的特殊性 : (3)指针运算实质上就是对地址的运算。因此,指针运算只能参与 赋值运算 算术运算 关系运算 * main( ) {int a,b,c,d,e, *pa=a,*pb=b, *pc, *pe; pc=c; pe=e; scanf(“%d,%d”,a,pb); /*input 10,20 */ c=a+b; /*c=30 */ d=*pa+*pb; /*d=a+b, d=30 */ e=*pc; /*e=c=30 */ printf(“%d,%d,%d,%d\n”,c,d,e,*pe+1); } 输出: 30,30,30,31 * 8.1 指针 Example 空指针 NULL:是常量 0。NULL可以用于给指针变量初始化和赋值,表示指针没有指向任何对象。 Example: int *p; p = NULL; 任意指针 p 可与 NULL 进行关系运算 p==NULL 或 p!=NULL 判断是否为空 * 8.1 指针 指针运算——算术运算 指针变量可进行加减运算,即加、减一个整数或自增1、自减1 int a=1; int *p=a; p++; /*指针p指向 原指针值加sizeof(int)个字节 */ 0x1000 0x1000+ sizeof(int) * 8.1 指针 p?i ? p ?i?d (i为整型数,d为p指向的变量所占字节数 p++, p--, p+i, p-i, p+=i, p-=i 若p1与p2指向同一数组, p1-p2=两指针间元素个数?(p1-p2)/d p1+p2, p1*p2, p1/p2无意义 * 8.1 指针 Example: int a[10]; int *p1=a[2]; int *p2=a[5]; 则:p2-p1=3; 指针运算——关系运算 若p1和p2指向同一数组,则 p1p2 表示p1指的元素在前 p1p2 表示p1指的元素在后 p1==p2 表示
文档评论(0)