C语言2文档格式.docx

上传人:b****5 文档编号:16143155 上传时间:2022-11-20 格式:DOCX 页数:11 大小:83.85KB
下载 相关 举报
C语言2文档格式.docx_第1页
第1页 / 共11页
C语言2文档格式.docx_第2页
第2页 / 共11页
C语言2文档格式.docx_第3页
第3页 / 共11页
C语言2文档格式.docx_第4页
第4页 / 共11页
C语言2文档格式.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

C语言2文档格式.docx

《C语言2文档格式.docx》由会员分享,可在线阅读,更多相关《C语言2文档格式.docx(11页珍藏版)》请在冰豆网上搜索。

C语言2文档格式.docx

\0'

字符。

其调用格式为:

  gets(s);

  其中s为字符串变量(字符串数组名或字符串指针)。

  gets(s)函数与scanf("

%s"

&

s)相似,但不完全相同,使用scanf("

s)函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到遇到换行为止。

17.地址:

内存区的每一个字节有一个编号,这就是地址

18.指针:

一个特殊的变量,它是存放地址的

19.*:

取值操作符。

&

:

取址操作符

20.指针变量:

专门用来存放变量的地址的变量

21.变量的地址称为变量的指针

22.指针变量的值(即指针变量中存放的值)是地址(即指针)

23.定义一个指针变量“*”:

float*pointer_3;

//pointer_3是指向float型变量的指针变量

24.可以用赋值语句使一个指针变量得到另一个变量的地址,从而使它指向该变量

25定义一个指针变量:

指针变量前面的*,表示该变量的类型为指针型变量,其一般形式为:

类型说明符*变量名;

类型说明符表示本指针变量所指向的变量数据类型如float*pointer_1;

指针变量名是pointer_1而不是*pointer_1

26.&

和*:

自右向左

27.数组名即“翻译成数组的第一个元素的地址”

Int*p;

inta[10];

p=a;

28.指针变量无非就是一个表示内存地址的长整数而已,当然可以比较。

指向同一个数组时,两个指针的大小就表示谁指向的元素靠前或靠后。

指针是一个变量,它存放的是内存地址p作为内存地址,是可以和其他指针进行比较的,但是,无论怎么比较都是毫无意义的,它们的比较只能反映出数据所在的内存位置的前后关系

28.p++;

//指针变量p加1,指向下一个元素

29.一维数组的第i个元素地址可表示为:

数组名+i

因此一维数组a[i]中第j个元素a[i][j]地址可表示为:

a[i]+j,即:

二维数组a中第i行第j列元素a[i][j]的地址可用a[i]+j来表示(或*(a+1)+2),而元素a[i]][j]的值为:

*(a[i]+j)。

30.cout<

<

p->

data<

'

'

;

cout输出到屏幕

插入符号

datap指针指向data成员

插入一个空格

结束

合起来的意思就是把p指针指向的data成员里的内容输出到屏幕

31.a[i]表示第i行首地址(即第i行第0列地址)&

a[i][0]。

32.C语言规定:

二维数组a中第i行地址用a+i或&

a[i]表示,行地址的值与行首地址的值是相同的,即:

  a+i=&

a[i]=a[i]=&

a[i][0]

33.设p为指向二维数组a【3】【4】的指针变量,可定义为:

int(*p)[4],它表示p是一个指针变量,它指向包含4个元素的一维数组。

若指向a【0】,其值等于a,a【0】,或&

a【0】【0】而p+i则指向一维数组a【i】

34*(p+i)+j是二维数组i行j列的元素的地址.

*(*(p+i)+j)则是i行j列元素的值

35.对字符数组只能对各个元素赋值,不能用以下方法对字符数组赋值charstr[20];

str=”Ilovefish!

”;

36.而对字符指针可以采用下面方法赋值(赋给a的不是字符,而是字符串第一个元素的地址)

char*a;

a=”Ilovefish!

(orchar*a=”Ilovefish”)

37.对数组的初始化:

charstr[20]={“Ilovefish”}

38.返回指针值的函数,一般定义的形式为:

类型名*函数名(参数表列)例如int*a(intx,inty);

39.指针函数:

带指针的函数,本质是一个函数

函数指针:

指向函数的指针变量

40指向指针的指针:

forexamplechar**p;

41

(1).int*p[n]:

定义指针数组p,它由n个指向整型数据的指针元素组成(一般用于处理二维数组)

赋值:

for(i=1;

i<

M;

i++)p[i]=b[i];

引用:

*p:

数组b首地址;

p+i指向数组i号元素的地址

*(p+i):

数组b的i行首地址;

b[i][j]=*(*(p+i)+j)=*(p[i]+j)=(*(p+i))[j]=p[i][j]

(2)int(*p)[n]:

p为指向含n个元素的一维数组的指针变量(即行指针)

p=b

p+i与*(p+i):

数组b的i行首地址

b[i][j]=*(*(p+i)+j)=*(p[i]+j)=(*(p+i))[j]=p[i][j]

(3)int*p():

p为带回一个指针的函数,该指针指向整型数据

(4)int(*p)():

p为指向函数的指针,该函数返回一个整型值

42.变量的间接访问:

通过变量的地址——指针;

来访问

变量的直接访问:

通过变量名访问

43.指针变量的算术运算

(1)指针p加上n意思是指针指向当前位置的后方第n个数据的地址,实际位置:

p+n*sizeof(指针类型)

(指针加1表示指向下一个数据)

(2)两个相同类型的指针相减p2-p1:

表示两个指针间相隔多少个数据,值为正时p2在p1后面(地址较高)

(3)关系运算p>

q成立时p指向较高字节;

p==q成立时p,q指向同一变量

44.指针变量的赋值运算

(1)向指针变量赋的值必须是地址常量或变量,不能是普通整数

(2)可以赋值为整数0,表示空指针

例如:

p=0或p=NULL(NULL是系统定义的标志符,表示0)

45.当指针变量里存放一个数组的首地址,此指针变量成为指向数组的指针变量,简称数组的指针

46.

(1)数组名a及a+1,……等都是指针,且为指针常量

(2)数组与指针的等价性:

当一个指针变量指向数组首地址以后,指针变量名就和数组等价.例如inta[5],*p=a;

经过上述声明和赋值后,a[i],*(a+i),*(p+i),p[i]都是等价的,都是数组i号元素的值(推论:

[]与*()等价)

但是不能写a++,因为a是数组的首地址,是常量

47.二维数组a

(1)可看成一维数组,*(a+i)=a[i]

(2)数组i行首地址:

a+i,*(a+i),a[i]

(3)a[i]+j=&

a[i][j]即为数组i行j列元素的地址

(4)a[i][j]=*(*(a+i)+j)

(5)*与[]通用数组元素的值:

a[i][j]=*(*(a+i)+j)=*(a[i]+j)=(*(a+i))[j]

数组元素的地址:

a[i][j]=*(a+i)+j=a[i]+j

(6)设数组大小:

x[M][N]则X[i][j]=*(p+i*N+j)例如:

对x[2][3],&

x[1][2]=p+1*3+2=p+5,即p+5指向x[1][2]

结论:

对普通指针变量p+i与x+i不等价(指针变量与数组名不等价,计算机认为不是同类型地址)

48.(int*)A是把A强制转化为int型指针,A应该已经定义了。

一般是右操作数。

int*A是定义整型指针变量。

49.行指针是一种形象的说法,比如现在有x行x列的表格。

p指针指向第一行,行指针特点就是比如p+1,那么p就指向下一行的首地址。

普通指针+1就指向下一个,注意是下一个地址。

行指针是指向下一行。

数组指针就是一个数组的地址,行指针出现在二维数组里就是是二级指针那里附近,例如inta[10][5];

那么二维数组可以可分为行和列,那么要找到每一个数组就要通过哪行和哪列查找,a[10][10]中第一个小标表示行,第二个下标表示列,那么a[1],a[2]表示对应行的指针,记得在二维数组中约定a[1],a[2]表示的是指针,在一维数组中a[1],a[2]表示的是元素。

50.二维数组的指针

(1)指向一维数组的指针变量

行指针定义:

数据类型(*指针变量名)[m](通常为二维数组的列数)

int(*p)[4]p为指向有m个元素的一维数组的指针变量

行指针特点:

只能指向一维数组的开头,p+i指向a[i]

指针变量p与数组名a等价

a[i][j]=*(*(p+i)+j)=*(p[i]+j)=(*(p+i))[j]=p[i][j]

(2)行指针和数组名等价,普通指针按数组在农村中存储顺序依次指向

(3)普通指针变量赋值时,必须做强制类型转换,行指针直接给数组名

(4)行指针用于正常处理二维数组元素时。

普通指针用于顺序处理二维数组时

51.字符串

表示形式

(1)字符数组法:

charstring[]=”name”;

输出:

printf(“%s\n”,string);

或for(i=0;

5;

i++)printf(“%c”,string[i]);

(2)地址常量法:

for(i=0;

i++)printf(“%c”,*(string+i));

(3)字符指针法:

charstring[]=”name”,*p=string;

整体输出:

printf(“%s\n”,p);

单字符输出:

while(*p!

=0)printf(“%c”,*p++);

(4)直接指针法:

char*p=”name”;

输出:

注意:

可用指针变量直接对字符串赋值

charstring[],*p;

p=”name”;

但不能是string=”name”

不能用指针输入字符串即不能是scanf(“%s”,p)

52.函数指针

(1)函数代码存储区的首地址称为:

函数的入口地址

(2)可以用指针变量记下函数的入口地址,这样的指针变量称为函数的指针

(3)函数指针的定义:

数据类型(*函数指针名)(形参类型表)

例:

int(*p)(int,float);

定义指针变量p可以

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 唐诗宋词

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1