欢迎来金海湾博客
Jean901

https://blog.jinbay.com/Jean901/  复制链接收藏

Jean901个人头像
Jean901
博客日历
«November 2024»
12
3456789
10111213141516
17181920212223
24252627282930
博客自定义分类
4/30/2009 1:23:00 PM [语言学习] 分享

分享

3.字符串的指针指向字符串的针指变量</SPAN>
a.字符串的表示形式</SPAN>
在C语言中,可以用两种方法访问一个字符串。</SPAN>
1) 用字符数组存放一个字符串,然后输出该字符串。</SPAN>
2) 用字符串指针指向一个字符串。</SPAN>
b.使用字符串指针变量与字符数组的区别</SPAN>
用字符数组和字符指针变量都可实现字符串的存储和运算。但是两者是有区别的。在使用时应注意以下几个问题:</SPAN>
1. 字符串指针变量本身是一个变量,用于存放字符串的首地址。而字符串本身是存放在以该首地址为首的一块连续的内存空间中并以‘\0’作为串的结束。字符数组是由于若干个数组元素组成的,它可用来存放整个字符串。</SPAN>
2. 对字符串指针方式</SPAN>
char *ps="C Language";</SPAN>
可以写为:</SPAN>
char *ps;</SPAN>
ps="C Language";</SPAN>
而对数组方式:</SPAN>
static char st[]={"C Language"};</SPAN>
不能写为:</SPAN>
char st[20];</SPAN>
st={"C Language"};</SPAN>
而只能对字符数组的各元素逐个赋值。</SPAN>
从以上几点可以看出字符串指针变量与字符数组在使用时的区别,同时也可看出使用指针变量更加方便</SPAN>
 
4.函数指针变量</SPAN>
在C语言中,一个函数总是占用一段连续的内存区,而函数名就是该函数所占内存区的首地址。我们可以把函数的这个首地址(或称入口地址)赋予一个指针变量,使该指针变量指向该函数。然后通过指针变量就可以找到并调用这个函数。我们把这种指向函数的指针变量称为“函数指针变量”。</SPAN>
函数指针变量定义的一般形式为:</SPAN>
类型说明符 (*指针变量名)();</SPAN>
其中“类型说明符”表示被指函数的返回值的类型。“(* 指针变量名)”表示“*”后面的变量是定义的指针变量。最后的空括号表示指针变量所指的是一个函数。</SPAN>
例如:</SPAN>
int (*pf)();</SPAN>
表示pf是一个指向函数入口的指针变量,该函数的返回值(函数值)是整型。</SPAN>
调用函数的一般形式为:</SPAN>
(*指针变量名) (实参表)</SPAN>
使用函数指针变量还应注意以下两点:</SPAN>
a) 函数指针变量不能进行算术运算,这是与数组指针变量不同的。数组指针变量加减一个整数可使指针移动指向后面或前面的数组元素,而函数指针的移动是毫无意义的。</SPAN>
b) 函数调用中"(*指针变量名)"的两边的括号不可少,其中的*不应该理解为求值运算,在此处它只是一种表示符号。</SPAN>
 
5.指针型函数</SPAN>
。在C语言中允许一个函数的返回值是一个指针(即地址),这种返回指针值的函数称为指针型函数。</SPAN>
定义指针型函数的一般形式为:</SPAN>
类型说明符 *函数名(形参表)</SPAN>
{</SPAN>
…… </SPAN>
}</SPAN>
其中函数名之前加了“*”号表明这是一个指针型函数,即返回值是一个指针。类型说明符表示了返回的指针值所指向的数据类型</SPAN>
 
6.指针数组和指向指针的指针</SPAN>
a.指针数组的概念</SPAN>
一个数组的元素值为指针则是指针数组。 指针数组是一组有序的指针的集合。 指针数组的所有元素都必须是具有相同存储类型和指向相同数据类型的指针变量。</SPAN>
指针数组说明的一般形式为:</SPAN>
类型说明符 *数组名[数组长度]</SPAN>
其中类型说明符为指针值所指向的变量的类型。</SPAN>
b.指向指针的指针</SPAN>
如果一个指针变量存放的又是另一个指针变量的地址,则称这个指针变量为指向指针的指针变量。</SPAN>
在前面已经介绍过,通过指针访问变量称为间接访问。由于指针变量直接指向变量,所以称为“单级间址”。而如果通过指向指针的指针变量来访问变量则构成“二级间址”。</SPAN>
c.main函数的参数</SPAN>
。C语言规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为:</SPAN>
main (argc,argv)</SPAN>
C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为:</SPAN>
main (int argc,char *argv[])</SPAN>
由于main函数不能被其它函数调用,因此不可能在程序内部取得实际值。那么,在何处把实参值赋予main函数的形参呢? 实际上,main函数的参数值是从操作系统命令行上获得的。当我们要运行一个可执行文件时,在DOS提示符下键入文件名,再输入实际参数即可把这些实参传送到main的形参中去。</SPAN>
DOS提示符下命令行的一般形式为:</SPAN>
C:\>可执行文件名 参数 参数……;</SPAN>
但是应该特别注意的是,main 的两个形参和命令行中的参数在位置上不是一一对应的。因为,main的形参只有二个,而命令行中的参数个数原则上未加限制。argc参数表示了命令行中参数的个数(注意:文件名本身也算一个参数),argc的值是在输入命令行时由系统按实际参数的个数自动赋予的。</SPAN>
 阅读全文>>

评论

分享 分享

对话:

我要刊登广告
我要刊登广告
4/30/2009 2:25:00 PM [体育运动] 分享

分享

    2009年4月15日,一年一度的体育高考即将结束。在这天我经历了人生中的最沉重的打击,在考足球
专项以后,等到念成绩的时候发现自己的专业分平白无故少了4.8分,一时间,我突然迷失了自己,不知
道该怎么办。
    在这三天的体考中,其中的黑暗让我无言。代考的、替考的、买分的,总之很多作假的都在我眼皮
底下走过。心想,管别人的,自己考出水平就是了。结果...“有钱能使鬼推磨”改成了“有钱能使鬼(
嗜钱的考官)听话”。对于我们这些努力训练来考试的人说,我们是为了梦想才走上这条路的,是有目标
的。而那些作假的人,无非就是要个成绩好上大学,他们把自己的虚假建立在我们的梦想之上。不久以
后,一切都会暴露,他们的实力就会现行。对于那些嗜钱的考官来说,他们就是鬼,把我们辛辛苦苦挣
来的分,就这样不明不白卖给了那些“有钱人”。那些鬼把分换成钱装入自己的腰包,他们难道不知道
什么叫辛苦吗,那些鬼的心已经变成了黑色的恶魔,黑恶主宰了他们的思想。
    在我考足球专项的是时候,心里充满了期待。正常发挥应该可以有37左右的,可是顶球没顶好,丢
了三分。自己在考完之后算分,大概也是34左右

阅读(89)评论(0)

4/30/2009 11:46:00 AM [宠物动物] 分享

分享

      今天下午,我在家正在和我哥哥玩呢,听见外面有狗叫的声音,叫得很大,开始我没有在意,毕竟我家有楼下有很多狗狗,听见狗叫的的声音太习以为常了,当时我还认为是谁家的狗再和别的狗打闹呢......       但实际上这种狗叫的声音并没有正常的停止下来,而是没完没了的,并且越听越凄惨,“是不是和别的狗打起来了?”我哥说,“不会吧?不太对劲啊?”我说。然后我就在阳台看见楼下有很多人围在了一起,还有很多人往狗叫的声音方向走去(跑去),于是便激起了我的好奇心,我便走到了(应该是跑到了)那个人堆去了......
       不看可好,一看这个揪心啊,一只黑白花的小狗,躺在一棵小树下,浑身抽搐,旁边还有刚刚吐出来的血......不停地惨叫,旁边围了很多人,有的叹息,有的好奇......这只狗的叫声很大,凄惨声音让在场所有的人不尽的摇头、叹息......他那个旁边的围观者说,“这只狗开始的 时候还在吃着东西,吃着吃着就不吃了,可能是吃饱了?但是一会就趴在地上一动不动,开始惨叫起来,叫的声音很大,然后就开始口吐白沫,最后开始吐血......现在是没劲了,叫不动了。”
       仔细观察,那只狗是食物中毒,说白了就是误食了

阅读(103)评论(0)

© 2024 Jinbay.com All rights reserved. 版权所有金海湾。 未经许可,不得转载。