加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C语言考试常考知识点-数组和指针

(2010-07-21 10:39:24)
标签:

数组

指针

字符串

c语言

函数

it

分类: 技术

1.    言中规定了数组名代表数组中的第一个元素(即序号为零的元素)的地址。因此,下面两个语句是等价的:

int * p;

p=&a[0];          //以下两句是等价的。

p=a;        //这里的p就是指向数组的指针。

此时*p=a[0] *(p+1)=a[1] p+1=&a[1] 同时指向数组的指针也可以带有下标,如此处p[6]=*(p+6)

注意*++的方向性:同一如下:*(P++)*(++p)就有不同的理解

*(++P):先使p自增一次,然后再取*p*p++*++的运算优先级是相同的但是由于++*的结合性是自由至左,故可理解为p++然后取*但是由于p++并不产生影响,故仍取原值。

*(P++):直接使用p,取*p然后自增一次。

如果p的值为a(p=&a[0])的话,输出*++P):最后的值为a[1]的值。而*(P++):最后输出的值为a[0]的值。这里使用a a+1什么的都可以,但是不允许使用a++;因为a作为指针常量不可以自加。

多维数组中,例如:

int a[3][4];

a         //代表二维数组首元素的地址,需要注意a=a[0]=&a[0][0]

a+1;      //这里的含义为a[1]。代表第一行的首地址。

a[0]+1:   //这里的含义为a[0][1]

a[0]      //代表一位数组a[0]中第0列元素的地址,即a[0][0]

a[1]*(a+1)等价,a[0]+1*(a+0)+1的值都是&a[0][1]*(a[0]+1)就是a[0][1]的值,*(*(a+0)+1)*(*a+1)也是a[0][1]的值。a[i]*(a+i)是等价的。a指向一维数组,a[0]指向a[0][0]元素。*a是指向列的指针详见P225

2.       如果数组什么都不赋值,系统随机赋值。加入给其中一个元素赋予了值,则其它值为0

3.       指向行的指针前面加上一个*,就是转换为指向列的指针。

4.       可以使用字符串常量来初始化字符数组,这样系统自动在尾部加上’\0’,例char[]=”gongqingkui”;使用printf输出字符数组的时候必须使用数组的名字。包含一个以上的’\0’时,遇到第一个就自动停止。同时输入的时候就要使用数组名,这时的数组名就是数组的起始地址。

5.       使用字符串处理函数的时候必须在前面加上string.H文件。

6.       puts输出gets输入strcat字符串连接strcpy字符串复制strcmp字符串比较消协字母比大写字母大。Strlen字符长度,strlwr小写,strupr大写

7.       变量的指针就是变量的地址。存放地址的变量就是指针变量。

8.       *&a 先进行&a运算,得到地址,然后间接引用得到a的值。

9.       ++*为同一优先级,但是结合方向是至右向左。

10.   数组名是指针常量,不可以进行++运算。Int a[5];p=a;p+1等于&a[1];

11.   注意双重指向int **p;指向指针的指针

12.   直接定义的指针变量没有赋地址的情况下,他的情况是不可预见的,应该避免这种情况。有时在系统使用指针输入一组数据之后,再使用指针的时候应该赋初值。

13.   int *p[4]先与[4]结合,认为是数组,然后结合指针就变成了指针数组。Int (*p)[4]先于(*P)结合是指针,指向长度为4的数组。

14.   如果开始的时候指针指向a[0][0]如果对她加一的话,她指向下一个元素。如果指针先指向a[0]指针加一就是a[1]

15.   char * str=”gongqingkui”; str存放的是字符串的首地址。Str指向字符串的第一个字符的地址,输出的时候用%s。这样可以对一个数组进行整体的输入输出。同时注意在字符串相互复制的时候加上’\0’。字符数组在定义的时候赋值初始化,而字符串可以在定义的时候也可以在其他时候初始化,

16.   数据类型 *p)()数据类型是函数返回值的类型。P指向一个函数。此函数带回整形的返回值。Int *p()表示声明一个函数,返回值是指向整型变量的指针,在这样的函数中必须写上return返回一个指针。直接赋值可以将函数地址传给指针。P=max//max为函数名。使用(*P)调用函数c=(*p)(a,b)

17.   指针可以进行相减的运算,对她进行相加的运算没有意义,指针可以进行比较,前面的元素的指针小于后面元素的指针。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有