字符串
字符‘\0’是一个转义字符,称为“空值”,同时也是字符串结束标志,但不计入串的实际长度。
使指针指向一个字符串
(1)可以在定义字符指针变量的同时,将存放字符串的存储单元起始地址赋给指针变量
(2)如果定义了一个字符型指针变量,可以通过赋值运算符将某个字符串的起始地址赋给它
字符串的输入和输出
对于字符串可以利用%c格式说明或字符输入(gets)、输出(puts)函数逐个输入、输出字符,输入时在最后加入‘\0’从而构成字符串,输出时用‘\0’作为输出结束标志。也可以用格式说明符%s进行整串输入和输出
用于字符串处理的函数
(1)拷贝函数strcpy
strcpy(s1,s2)
(2)字符串连接函数strcat
strcat(s1,s2)
(3)求字符串长度函数strlen
strlen(s)
(4)字符串比较函数strcmp
strcmp(s1,s2)
函数的指针与递归调用
c语言中函数名代表该函数的入口地址,因此可以定义一种指向函数的指针来存放这种地址。
函数名或指向函数的指针变量可以作为实参传送给函数
#include <stdio.h>
#include <math.h>
double tran(double (*)(double), double (*)(double), double);/*函数说明语句*/
main()
{
double y, v;
v = 60 * 3.1416 / 180.0;
y = tran(sin, cos, v);/*第一次调用*/
printf("tan(60) = %10.6f\n", y);
y = tran(cos, sin, v);/*第二次调用*/
printf("cot(60) = %10.6f\n", y);
}
double tran(double (*f1)(double), double (*f2)(double), double x)
{
return (*f1)(x) / (*f2)(x);
}
函数可以递归调用,即:可以直接或间接地自己调用自己。
递归的条件:
(1)可以把要解的问题转化为一个新的问题,而这个新的问题的解法任与原来的解法相同,只是所处理的对象有规律地递增或递减。
(2)可以应用这个转化过程使问题得到解决。
(3)必定要有一个明确的结束递归的条件。