正文内容

第八章指针-wenkub

2022-08-19 20:25:03 本页面
 

【正文】 (2022) 6 (2022) 8 (2022) 10 (2022) 12 (200A) 14 (200C) 16 (200E) 18 (2022) a+1 a+2 a+0 … … for(i=0。 int i, j。 for(i=0。a[4] *(a+i) 湖南理工学院物理与电子信息系 2 4 6 8 10 a[0] a[1] a[2] a[3] a[4] main() { int a[ ], i。a[0] amp。 *(p+3)+=2。 p=a。 后者是先使 p 加 1,再读取 *p 的值。 i++) printf(“%d,”, *p++)。 若有 *p++ 由于 ++ 和 * 同优先级,其结合方向为 自右而左 ,因 此它等价于 *(p++)。i++) … … … … … … for(p=a。 *p *p *p 湖南理工学院物理与电子信息系 { printf(“%d,”, *p)。 p++。 2 4 6 8 10 12 14 16 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] p=amp。 for(i=0。而 指针 则是专门用来存放其它 变量地址 的变 量。 2 sizeof(int) 20 printf(“%d\n”, sizeof(c))。 } s t u d e n t \0 *p 湖南理工学院物理与电子信息系 计算字节数量 格式 : sizeof (数据类型标识符 ) 功能 : 其值为该类型变量在内存中所占的字节数。 p=malloc(8)。 p=malloc(2)。为了更有效地 利用内存空间,则可采用指针对内存进行动 态分配 (即需要时开辟空间, 结束时再释放 空间 )。b。b。 ***p3=300。 p3=amp。 p1=amp。 printf(“max=%d\n”, max)。 请利用指针变量,输出 a、 b两个变量中最大的数据。 } printf(“%d, %d\n”, a,b)。b。 } 200, 100 100 a FFDA b 200 FFDC *p1 *p2 FFDA FFDC *p FFDA FFDC DA 交 换 地 址 EXERCISES[81]: 湖南理工学院物理与电子信息系 main() { int a=100, b=200, *p1,*p2, c。 if (ab) { p=p1。 p1=amp。 s=*p1+*p2。 p2=amp。 *p1 a 0 1 *p1 即将 p1所指向的 a中的 值读出,然后再将 p1 向后移动 2个字节。a。 *p3 p3=*amp。*p1。*p1 代表变量 a 的地址,即相当于 amp。 int *p1=amp。 强制类型转换 (将 b 转换 int 类型 ) 湖南理工学院物理与电子信息系 指针变量在使用之前必须赋初值 int a, b。 float b。 *p1=100。 指针变量的 int a, b, *p1, *p2。 *p2=200。a。a。 100 p=amp。a。也就是说,一个 变 量在内存空间中所占用的地址 称为该变 量的指针。 b=6。 在这一章里,主要介绍指针的 概念 、指针 的 定义 与 运算 、 指针与数组 、 指针数组 等项内 容。 湖南理工学院物理与电子信息系 main() { int a, b。 x=。 a 2022 变量的指针 湖南理工学院物理与电子信息系 指针变量 a 2022 p 2022 FFD0 指 针 变 量 如果一个变量是专门用来存放其它 变量的 地址 ,那么就称这个变量为 指针 变量 。 p=amp。a。 取 址 符号 *p=200。 *p2=amp。 } p1 a b p2 100 200 printf(“%d, %d\n”, a,b)。 p1=amp。 p1 a 100 p1=100。 p1=amp。 *p1 a FFC0 b 5 int *p1。a。a b=*amp。 int a,b,*p1=amp。p1。 相当于 a++。 Why? 湖南理工学院物理与电子信息系 main() { int a, b, s,*p1, *p2。b。 printf(“s=%d \n”, s)。a。 p1=p2。 p1=amp。 if (ab) { c=*p1。 } if (*p1*p2) 100 a FFDA b 200 FFDC *p1 *p2 FFDA FFDC c 100 200 100 交 换 数 值 湖南理工学院物理与电子信息系 main() { int a,b,max, *p1=amp。 scanf(“%d,%d”, p1,p2)。 } EXERCISES[82]: 湖南理工学院物理与电子信息系 a FFD2 p1 FFD4 p2 FFD6 p3 FFD8 FFD2 FFD4 FFD6 指 针 的 指 针 当指针指向的对象是另一个指针 变量时就构成了 指针的指针 。a。p2。 printf(“%d\n”, )。 b=amp。 b=amp。 湖南理工学院物理与电子信息系 内存分配函数 格式 : malloc(size) 功能 : 请求分配连续 size个存储位置的区域。 07B6 07B7 *p=100。 strcpy(p, “student”)。 main() { int a, b[10] 。 } printf(“%d\n”, sizeof(a))。 从前面的内容得知,当一个指针变量存有某一个变量的地 址时,则这个指针就指向该变量。i8。a[0]。 printf(“%d,”, *p)。 p++。pa+8。 main() { int a[8]={2,4,6,8,10,12,14,16}, i, *p。 } 指 针 的 运 算 湖南理工学院物理与电子信息系 (*p)++:表示是 p 所指向的元素值加 1。 *(p): 将 p 所指向的元素读出,然后使 p向低字节移动。 A) p+=2, *(p++) B) p+=2, *++p C) p+=3, *p++ D) p+=2, ++*p 将 p移动再读取其元素值。 printf(“%d,%d\n”, *p, *(p+3))。a[1] amp。 for(i=0。 i5。 for(i=0。i3。 printf(“\n”)。 j3。 for(i=0。j++) printf (“%8p”, )。i3。 printf (“\n”)。 printf(“\n”)。 for(i=0。 int (*p)[3]。i++) { for(j=0。 } … … *(p+i)+j) p printf(“%d, ”, *(p+i)+j) )。 for(i=0。j ++) k+=*(*(p+i )+j)。 for(p=amp。 else ++p。 p=amp。i++) { if (i==0) a[i][i+1]=*p+1。也就是说,指针数组中的 每一个元素都相当于一个指针变量。 p[1]=amp。 int a[3]={1,3,5}。 main() { int i。 p[0] p[1] p[2] p[3] a a \0 b b b \0 c \0 d d d d \0 bbb aa c dddd printf(“%c”, *p[i])。i ++) num[i]=amp。i++) printf(“%d,”, *num[i])。i++) p[i]=amp。i4。i4。 for(i=0。 char **p。i4。 int i。i++) printf(“%c,”, *ch[i])。 aa bbb c dddd 湖南理工学院物理与电子信息系 main() { char *ch[4]={“aa”,“bbb”,“c”,“dddd”}。 for(i=0。i4。请输出字符串。 char ch[ ]=“book”。 b o o k \0 ch[0] ch[1] ch[2] ch[3] ch[4] 符 字 组 数 湖南理工学院物理与电子信息系 符 字 针 指 在 C语言中,也可以不定义字符数组,而定义一个字符 指针,并用这个指针来指向字符串中的字符。 for(i=0。湖南理工学院物理与电子信息系 s t u d e n t \0 用 字符 数组 实现; 用 字符 指针 实现; 用 指向字符串的指针变量 实现 。 for(i=0。 printf(“%s”, b)。*(a+i)!=„\0‟。 } *b \0 湖南理工学院物理与电子信息系 用字符串的指针变量实现 s t u d e n t \0 … s t u d e n t … *p1 *p2 \0 main() { char a[]=“student”,b[20]。 for(。 printf(“%s”, p2)。 } 用字符串复制函数实现 湖南理工学院物理与电子信息系 char a[ ]=“Student”; char *a=“Student”。 char *a=“Student”。 printf(“%s\n”, a)。 and pen 湖南理工学院物理与电子信息系 请编写 fun 函数,其功能是:分别统计输入的字符串中大写字母 和小写字母的个数。 gets(s)。 printf(“%d, %d\n”, s1,s2)。 if (*s=„a‟amp。 } } 湖南理工学院物理与电子信息系 请编写函数 fun,其功能是:求出 ss所指字符串中指定字符 的个数,并返回此值。 gets(a)。 } 湖南理工学院物理与电子信息系 define M 81 viod fun( char *ss, char c ) { int n=0。
点击复制文档内容
范文总结相关推荐
文库吧 www.wenkub.com
备案图片鄂ICP备17016276号-1