C语言基础-函数
函数(本身有代码,程序执行先将函数参数入栈,再运行函数代码)
int main(int argc, char** argv);
argc表示参数的个数,argv里边存储各个参数
;第二个参数中argv[0]为自身运行目录路径和程序名,argv[1]指向第一个参数、argv[2]指向第二个参数
#include <stdio.h>
int main(int argc, char *argv[ ])
{
printf("%s\n",argv[0]);
return 0;
}
主函数main并非程序的真正入口!
在编译器对你的工程文件进行编译时,它是先找到你的main函数,然后根据main函数类型,把一段前缀入口程序预先编译,再让它去调用main函数.当你的main函数需要参数时,它就编译有参数main函数调用,反之则编译无参数main函数调用.
所以编译器是自动识别你的main函数类型的!
void main无返回值,部分编译器可以通过。
默认库
int fprintf ( FILE *fp, char * format, … );
函数声明:int printf(const char *format, ...)
函数调用:printf("<格式化字符串>", <参量表>);
format – 字符串(或字符数组指针),包含了要被写入到标准输出 stdout 的文本。
它可以包含嵌入的 format 标签,format 标签可被随后的附加参数中指定的值替换,并按需求进行格式化 。
转换说明符:
%c 字符 %s 字符串
%d 、%i 有符号十进制整数 %4d 四个为单位,右对齐
%u 无符号十进制整数
%f 浮点数(包括float和doulbe)
%o 八进制整数 %x 十六进制整数
%p 指针
int fscanf ( FILE *fp, char * format, … );
scanf("%?",&n);
把接收到的数据存入到变量n的内存中,
如果变量为数组或者指针,则不需要&
putchar()、puts()、gets()、getc()
putchar():输出字符数据,puts()输出字符串数据。
gets()、getc()
文件流如fgetc()、fpuc()
int fgetc(fp) :从fp所指的文件中获取下一个字符,出错返回EOF,否则返回所读的字符。
int fputc(int char, FILE *stream);
char *fgets(char *buf, int bufsize, fp);
*buf: 字符型指针,指向用来存储所得数据的地址。bufsize: 整型数据,指明存储数据的大小。
fpintg(fp,’’%?",变量名)
#include <stdio.h>
int main()
{
FILE *fp; //文件流。
if((fp=fopen("test.txt","r"))==NULL)
printf("%s","错误");
//char c;
//while((c=fgetc(fp))!=EOF)
// printf("%c",c);
char f[10];
fgets(f,10,fp);
puts(f);
fclose(fp);
return 0;
}
size_t strlen(char const* str):size_t也就是无符号整数
计算指定字符串 str 的长度,但不包括结束字符(即 null 字符:’\0’)
LT小于 :LE小于等于 GT大于 GE大于等于 EQ等于 NE不等于
math.h
sqrt():计算非负实数的平方根
abs(int x);求整数x的绝对值
fabs(double x);求浮点数x的绝对值.
pow(a,n):a的n次方,a和n还有返回结果都是double类型
string.h
strcpy(新,旧):复制字符串的,接受两个参数,一个是被复制字符串,另一个新字符串
strcmp(str1,str2)
string compare(字符串比较),用于比较两个字符串并根据比较结果返回整数。
两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇’\0’为止
当s1<s2时,返回为负数;
当s1=s2时,返回值= 0;
当s1>s2时,返回正数。
stdlib.h
malloc/realloc/free 申请、释放内存:
malloc分配指定大小的内存
void * malloc(long NumBytes):分配NumBytes个字节,并返回指向该内存的指针。分配失败返回一个空指针。
realloc 是在原有的基础上在开辟若干空间
指针名=(Elemtype *)realloc(原指针名,新大小)
①先释放原来指针 所指内存区域
②按照新大小重新分配空间
③将原有数据从头到尾拷贝到新分配的内存区域
④并返回该内存区域的首地址。即重新分配存储器块。
void free(void *ptr):C语言中释放内存空间的函数.
通常与申请内存空间的函数malloc()结合使用,可以释放由 malloc()、calloc()、realloc() 等函数申请的内存空间。
(Elemtype *) ;可将malloc返回的类型(void * )
强制转换为(Elemtype *)类型
用法:指令名=(Elemtype )malloc( nsizeof(Elemtype))
指针名 ⇔ 指针 指向内存的首地址(如数组指针的基地址)