有以下程序段:
main(),p;
p=a; p++;
printf(“%d”, p);
p p++后p所指的位置,所以运行后结果为4.
有以下程序段:
main(),p=a+5;
for(j=3;j;jj=3, 输出*(-p)为9, *p=str[1];
printf(“%d,”,strlen(p));
printf(“%s”,p);
这是p的开始指向,所以程序运行结果为10, one*dream!
数组指针:(一个为指向几列数组的指针变量)指向二维数组的指针变量,期一般形式为类型说明符 (*指针变量名)[长度] 长度即为指针变量所指向的二维数组的列数。例如:
int (*p)[4], a[3][4]; p先与*结合说明p为指针变量,[4]代表p所指向二维数组的列数,p称为数组指针。 语句p=a; 使数组指针p与二维数组a建立关系。
指针数组:(每个数组元素为指针变量的数组)一组有序的指针变量的集合,期一般形式为类型说明符 *数组名[长度]例如: int *p[3] [与*同等优先级,结合性从右自左,所以p位数组名。
由p[0],p[1],p[2]等元素组成,由于加了*所以这些元素为指针变量,p称为指针数组。
指针数组与二维数组建立关系只能通过以下语句 for(i=0;i<3;i++)p[i]=a[i]; 此语句使p[0],p[1],p[2]指向各行的第一个元素,即p[0]=a[0]==a[0][0], p[1]=a[1]==a[1][0], p[2]=a[2]==a[2][0]不能用p=a;来建立关系,因为p为数组名为地址常量。
main()
int a=k[3], i=0;
while(i<3)
fun(a);
函数指针: 一个函数总是占用一段连续的存储空间,函数名代表该函数所占内存区的首地址,我们可以把函数名赋予一个指针变量,使指针变量指向该函数,通过指针变量可以找到该函数,这样的指针变量称为函数指针。其定义形式为:
类型说明符 (*指针变量名)(形参表)
如以下程序段:
int max(int a, int b)
if(a>b)return a;
else return b;
main()
int (*p)(int, int); 定义函数指针变量pmax
int x, y, z;
p=max函数指针变量pmax与指针建立关系。
scanf(“%d%d”,&x,&y);
z=(*p)(x,y用函数指针变量p代替函数,max
printf(“maxmum=%d”,z);
类比于数组指针。
指针函数:函数类型为指针型的函数称为指针型函数。其定义形式为类型说明符 *函数名(形参表) (类比于指针数组)其中函数名之前加了“*”号表示这是一个指针型函数,即返回值可以是一个字符串或一个指针变量。
例如: int *ap(int x, int y)表示ap是一个返回指针值得指针型函数,它返回的指针指向一个整型变量。
char *fun(char *t) /定义为指针型函数。
char *p=t;
return (p+strlen(t) /2); 返回值为p所指向的字符串,p指向的字符串为从e开始所以为efgh
main()
char *str=“abcdefgh”; 使str这个指针变量指向这个字符串。
str=fun(str);
puts(str);
有以下下程序段:
void f(int *p);
main()
int a[5]=,r=a;
f(r);printf(“%d”,*r);
void f(int *p所以输出结果为41
p=p+3;printf(“%d”,*p);
rp+3有以下程序段:
main()
char *s=“abc”; 指针变量s指向这个字符串。
do{ printf(“%d”,*s%10); s++;s即为a再对10取余为5,所以输出结果为567
while(*s);
有以下程序段:
void fun1(char *p)
char *q;
q=p;while(*q!=‘0’)
q)++qq)++之后如g变成h
所以程序运行结果为prohsn
C语言笔记
第一课时。c语言标准格式。include vidomain 以 开头的语句称为预处理指令。include语句不是必须的,但是如果一旦有该语句就必须把它放在文件开始处是standared input output header的缩写standared 标准input 输入output 输出header...
C语言笔记
c语言算法和数据类型。整型。基本类型 字符型注释 基本类型的特点是其不可实型 单精度型以再分解为其他类型双精度型数组型。数据结构 构造型 结构体型共用体型指针型空类型。一 常量。define 语句不以分号结尾,它可以放在源 的任何位置。不过在定义常量时,只有在它定义后的源 中才有效。是一个修饰符,在...
c语言笔记
1.if中别忘了 而不是 2.写完程序别忘了检查前后大括号 小括号是否完全照应。3.遇到几分之几的分数可以方程两边同时乘以一个数来消去分母。4.写指针题时看准指针对应的是行还是列。例 int a 4 3 int p a 0 列指针。int ptr 3 a 行指针。5.考虑好哪些量会随着循环不断改变。...