第七章 指针:指针是C语言中一个重要的概念,可以看作是C语言中的精华部分,正确灵活的使用指针可以使程序简洁、紧凑、高效。指针通过地址间接的对C语言中的变量进行访问和处理,在处理复杂类型数据以及非线性存储结构数据时优越性十分明显。7.1指针与指针变量:正确认识指针和指针变量是灵活使用指针处理问题的前提。指针就是地址,指针变量就是存放地址的变量。使用指针处理问题之前需要对指针进行正确的定义、初始化、计算和引用。
7.2指向一维数组的指针:学习通过指针处理一维数组,能够使数组的操作更加灵活,本节中主要介绍了指向一维数组指针的定义方法、指针加减与指向关系变化之间的关系以及通过指针引用数组元素的方法。数组名本身可以看作是一个指向一维数组的指针常量。
7.3指向二维数组的指针:指向二维数组的指针是一个二级指针,本质上是一个指向行的指针,本节中主要介绍了指向二维数组指针的定义方法、指针加减与指向对象变化之间的关系以及通过指针引用二维数组元素的方法。
7.4指向字符串的指针:使用指针处理字符串更加方便灵活,避免了提前定义用于存储字符串的字符数组,本节主要介绍了字符串指针的定义、赋值、初始化、计算、引用、输出等方法。
7.5多级指针:二级以上的指针称为多级指针,也可以简单的称为指向指针的指针,指向的对象不再是普通变量,而是一个指针变量,本节以二级、三级指针为例,介绍了多级指针的定义、初始化、计算和引用的方法。多级指针在复杂问题的解决中应用较为广泛。
7.6指针数组:指针数组是一个数组,并且数组中的每个元素均为一个指针数据类型,也就是说,指针数组的每个元素都是地址。指针数组在多个字符串处理中应用较为广泛,使批量字符串的处理更加灵活,本节通过实例介绍了指针数组的定义、初始化、计算、引用等方法。
7.7指向函数的指针:指向函数的指针是一个指针,指向的对象是一个函数。通过指向函数的指针调用函数可以使函数的调用更加灵活方便,本节通过实例,介绍了指向函数指针的定义、初始化方法,通过指针调用函数以及将指针函数作为函数参数的方法。
7.8指针作为函数的参数:指针作为函数的参数传递方式以传地址方式为主,本节通过几个实例介绍了指针变量、指针常量、指向数组的指针、字符串指针和指向函数的指针作为函数参数时数据的处理方式。凸显了指针的优越性。
7.9指针函数:指针函数是结果为指针的函数,也就是函数的结果为一个地址,本节通过实例介绍了指针函数的定义、引用方法。
[单选题]有以下程序段,输出结果为()。#include<stdio.h>main(){int a=10,*p,**q,***s;p=&a;q=&p;s=&a;printf("%d,%d,%d",*p,**q,***s);}

选项:[10,10,随机值, 10,10,10 
, 10,随机值,随机值, 语法错误]
[单选题]有以下程序段,输出结果为()。#include<stdio.h>void swap(int *p1){int b=20;p1=&b;}main(){int a=10,*pa;pa=&a;swap(pa);printf("%d,%d",a,*pa);}

选项:[20,20, 10,20
, 20,10, 10,10    ]
[单选题]指针变量是把内存中另一个数据的()作为其值的变量。

选项:[标识符, 值    , 地址    , 变量名
]
[单选题]有以下程序段,在空白处填入(),可以使程序正确运行。#include<stdio.h>int      (int x,int y){if(x>y)return &x;else return &y;}main(){int a=3,b=5,*p;p=f(a,b);printf("%d",*p);}

选项:[*f , (*f)    , 其余选项都不对, f    ]
[单选题]有以下程序段,输出结果为()。#include<stdio.h>main(){int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int (*p)[4]=a;printf("%dn",*p);}

选项:[语法错误 , 1        
, 随机值, 12  
]
[单选题]有以下程序段,输出结果为()。#include<stdio.h>main(){int a[10]={11,32,43,25,16,71,24,23,80,44};int *p=a;int *s,;s=p+2; printf("%d,%d ",*p,*s);} 

选项:[11,43, 11,32    , 0,2 , 11,13   ]
[单选题]在以下程序段的空白处填入(),能够使程序正确运行。#include<stdio.h>int sum(int x,int y){return x+y;}main(){int a=3,b=5,c;            p=sum;c=(*p)(a,b);printf("%d",c);}

选项:[int (*p)(int ,int);    , int *p(int,int)  , int (*p)()   , 其余选项都不对 ]
[单选题]在以下程序段的空白处填入(),能够正确输出teacher。#include<stdio.h>main(){char *p[3]={"student","teacher","classroom"};printf("%s",         );}

选项:[*(p+1)  , *p+1  , *p+7, *p[1]   ]
[单选题]有以下程序段,输出结果为()。#include<stdio.h>main(){int a[10]={5,10,15,20,25,30,35,40,45,50};int *p=a;int *s, m;s=p++;m=*p++;   printf(“%d,%d,%d ”, *p, *s, m);} 


选项:[10,15,11, 5,10,15    , 15,5,10 , 5,10,11]

温馨提示支付 ¥1.00 元后可查看付费内容,请先翻页预览!
点赞(0) dxwkbang
返回
顶部