今天小结一下C语言的学习内容
第一点:
我们知道在C语言中,可以用两种方法访问一个字符串。
如:用字符数组存放一个字符串,然后输出该字符串。
main()
{
char string[]=”I love China!”;
printf("%s\n",string);
}
这里说明一下哦,和前面介绍的数组属性一样,string是数组名,它代表字符数组的首地址。看下图:
第二点:
用字符串指针指向一个字符串。
main()
{
char *string=”I love China!”;
printf("%s\n",string);
}
字符串指针变量的定义说明与指向字符变量的指针变量说明是相同的。只能按对指针变量的赋值不同来区别。对指向字符变量的指针变量应赋予该字符变量的地址。
如: char c,*p=&c ; 表示p是一个指向字符变量c的指针变量。
而: char *s="C Language";则表示s是一个指向字符串的指针变量。把字符串的首地址赋予s。
上例中,首先定义string是一个字符指针变量,然后把字符串的首地址赋予string(应写出整个字符串,以便编译系统把该串装入连续的一块内存单元),并把首地址送入string。其实呢,程序中的:char*ps="C Language"; 是等效于:char *ps;ps="CLanguage";
输出字符串中n个字符后的所有字符。
main()
{
char *ps="this is a book";
int n=10;
ps=ps+n;
printf("%s\n",ps);
}
解析:当然知道运行结果为:book 。在程序中对ps初始化时,即把字符串首地址赋予ps,当ps= ps+10之后,ps指向字符“b”,因此输出为"book"。
第三点:了解了使用字符串指针变量与字符数组的区别
用字符数组和字符指针变量都可实现字符串的存储和运算。但是两者是有区别的。下面我们要注意的几点哦!
(1) 字符串指针变量本身是一个变量,用于存放字符串的首地址。而字符串本身是存放在以该首地址为首的一块连续的内存空间中并以‘\0’作为串的结束。字符数组是由于若干个数组元素组成的,它可用来存放整个字符串。
(2) 对字符串指针方式char *ps="C Language";可以写为:char*ps;ps="C Language";而对数组方式:static charst[]={"C Language"};不能写为:char st[20];st={"C Language"};而只能对字符数组的各元素逐个赋值。
第四点:函数指针变量
了解了函数指针变量的定义形式 :类型说明符 (*指针变量名)();
其中“类型说明符”表示被指函数的返回值的类型。“(* 指针变量名)”表示“*”后面的变量是定义的指针变量。最后的空括号表示指针变量所指的是一个函数。
例如:
int (*pf)();
表示pf是一个指向函数入口的指针变量,该函数的返回值(函数值)是整型。
我们下面看个例子,是用来说明用指针形式实现对函数调用的方法。
ok!今天就先总结到这里了!明天继续加油!!争取尽快拿下C语言,迈向下一个阶段!~~~