A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张芳涛 中级黑马   /  2014-11-25 22:18  /  882 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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.   指针可以进行相减的运算,对她进行相加的运算没有意义,指针可以进行比较,前面的元素的指针小于后面元素的指针。

评分

参与人数 1技术分 +3 收起 理由
船长 + 3 很给力!

查看全部评分

3 个回复

正序浏览
张芳涛 发表于 2014-11-25 22:36
15个黑马币,,,,再多一个就可以在兑换一个技术分了。。。。。

我想把主要的时间放在复习上面,这样做也是无奈呀。。。
回复 使用道具 举报
15个黑马币,,,,再多一个就可以在兑换一个技术分了。。。。。

点评

带目的性的来发帖,很容易让别人误会,高大上的IOS,相信自己,加油!  发表于 2014-11-25 22:52
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马