C语言基础知识小总结(2)
上个总结比较笼统,下面写的稍微详细点吧算是。
一、控制台屏幕打印
1、putchar(); 格式: void putchar(char c); //直接把一个字符输出到屏幕上
2、printf(); 格式: void printf(格式字符串,参数1,参数2,参数3...参数n);
标准错误输出流:stderr
二、读取键盘输入(前两个包含在头文件<conio.h>中,第三个包含在头文件<stdio.h>中)
1、getchar(); 格式:int getchar(void); //等待用户输入并读取字符的数值(ascII)在用户按下回车键后才返回相应的第一个输入字符的数值
2、getch(); 格式: int getch(void); //同上,不过在使用的时候,再按下字符之后立刻返回对应的数值
3、getche(); //在使用的时候2按下的字符不显示在屏幕上,而这个会显示在屏幕上,其他同上
4、scanf(); 格式: scanf(格式控制字符串,&参数1,&参数2...参数n);
三、逻辑判断
if
if-else
if-else if-else
swicth
条件选择结构: 表达式1? 表达式2 : 表达式3; 例如:球两个数的最大值:(x>y) ? x : y ;
四、循环结构
1、while循环 2、do-while循环
while(条件) do
{ {
循环体; 循环体;
} }while(条件);
3、for循环(表达式可省略,在for循环可添加逗号表达式) 4、高级流程控制
for(n=3,i=0;i<20;i++,n++) (1)、goto 任意跳转(只能在本函数中)
{ goto lable;
循环体; lable:
} ....
(2)、break 结束循环
(3)、continue 结束本次循环
五、函数
1、return在函数中结束函数,返回到主调函数
2、函数在C语言中和变量的性质是一样的,如果在定义之前调用,必须先声明,否则出错,不在定义之前调用,则不必声明。
例: int fun1(参数列表);
int fun1(参数列表)
{
函数体;
}
3、函数可嵌套调用

4、递归(调用一个函数的过程中直接或间接的调用自身)
例:1、 fun1(x) 2、fun1(x)
{ {
... fun2(x);
fun1(x); }
} fun2(x)
{fun1(x);}
5、变量的存储类别
(1)、静态变量:在程序进行期间是固定的存储空间方式
(2)、动态存储变量:在程序进行期间根据需要进行分配存储空间的方式
注意:内存提供的存储空间分为程序区,静态区,动态区。 静态变量和全局变量有默认值0,其他变量的默认值都是随机分配的
自动变量:(auto) int i;(默认不带auto的都是自动变量)
内部函数:声明函数时前面加 static (只能在本文件中使用)
外部函数:声明函数时前面加 extern(默认不带extern时就是外部函数,可在整个程序中使用)
六、数组
一维数组: int array[100]={1,2,3...100};
float fArray[100];
二维数组: int array[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
float fArray[][5]={{1,2,3,4,5}}; //在初始化时可以省略一维的大小
二维数组array[3][4]相当于是两个一维数组嵌套,如下图:

字符数组:
char str[]={'1','2','k'};
char str[]="hello world";
char str2[123];
scanf("%s",str2);
七、字符串 (在头文件<string.h>中定义)
各个函数如下:
1、求字符串长度函数 strlen();
格式:unsigned int strlen(char * str);
来统计字符串中字符的个数。
2、字符串拷贝函数
(1)、strcpy(); 格式: char * strcpy(char * dest,char * src);
该函数是把src指向的字符串拷贝到dest中去,并且返回指向dest的指针给调用函数。
(2)、strncpy(); 格式: char * strncpy(char * dest,char * src,int n);
该函数是把src所指向的字符串的前n个字节复制到dest所指向的数组中,并且返回指向dest的指针。
3、字符串连接函数
(1)、strcat(); 格式:char * strcat(char * dest,char * src);
该函数是把src所指字符串添加到dest结尾处(覆盖dest结尾处的"\0"),在整个字符串,即新的dest最后添加"\0",并 且返回指向dest的指针给调用函数。
(2)、strncat(); 格式:char * strncat(char * dest,char * src,int n);
该函数是把src所指字符串的前个字节添加到dest结尾处(覆盖dest结尾处的"\0"),在整个字符串,即新的dest最后添 加"\0",并且返回指向dest的指针给调用函数。
4、字符串比较函数
(1)、strcmp(); 格式:int strcmp(char * s1,char * s2);
该函数是比较字符串s1和s2,即对两个字符串自左向右逐个比较(按ASCII码值大小比较),
直到出现不同的字符或者遇到"\0"为止。其返回值有三种,如下图:

(2)、strncmp(); 格式:int strcmp(char * s1,char * s2,int n);
该函数是比较字符串s1和s2的前n个字符,其返回值跟上面一样也是3种。但要注意,
该函数在比较时,从左向右逐个字符相比,直到n个字符结束。
(3)、strcmpi(); 格式:int strcmpi(char * s1,char * s2);
该函数是比较字符串s1和s2,但不区分大小写。
5、字符串查找函数
(1)、strchr(); 格式:char * strchr(char * s,char c);
s指向待查找的字符串,c可以赋值为需要查找的字符。当调用该函数时,将字符串中从左到右,
第一个出现的字符c的地址返回给调用函数,如果没有找到,返回NULL。
(2)、strrchr(); 格式:char * strrchr(char * s,char c);
与上面相反,这是从右到左查找。
(3)、strcspn(); 格式:int strcspn(char * s1,char *s2);
该函数是在字符串s1中搜寻s2中所出现的字符,返回第一个出现的字符在s1中的下标。
(4)、strspn(); 格式:int strspn(char * s1,char *s2);
该函数返回值为n,则说明s1开始连续有n个字符都是与字符串s2内的相同。
(5)、strpbrk(); 格式:char * strpbrk(char * s1,char *s2);
该函数是在字符串s1中搜寻与字符串s2中任何一个字符相匹配的第一个字符的位置,结束符不包括在内,
并返回指向s1中的第一个相匹配的字符的指针,如果没有匹配的就返回NULL。
(6)、strstr(); 格式:char * strstr(char * s1,char *s2);
该函数是在一个字符串中查找子字符串,并返回指向这个子字符串的指针。与其他查找函数不同,该函数是要整个,
子字符串相符合时,才成功返回。
6、其他字符串处理函数
(1)、strrev(); 格式:char * strrev(char * s);
该函数是将一个字符串中的字符顺序颠倒(但不包括空字符NULL),并返回指向新字符的指针。
(2)、strset(); 和strnset(); 格式: char * strset(char * s,char c);
char * strnset(char * s,char c,int n);
更换字符串中的字符(带n更换前n个,不带全换)。
7、字符串检查函数
(1)、isdigit(); 格式:int isdigit(char c);
当c为0-9时,返回非零,否则返回0。
(2)、isalpha(); 格式:int isaalpha(char c);
当c为a-z或者A-Z时,返回非零,否则返回0。
8、将字符串转换成数字
int atoi(char * s);
long atoi(char * s);
这两个函数都可以讲指定的数字字符串转换成数值,并赋值给变量。不过,这两个函数也是有区别的,
一个是转换成int型,一个是long型。
八、指针
指针函数
例:int * fun(int * a,int * b)
{
...
return p;
}
函数指针
作用:(1)、调用函数 (2)、作参数
例:int fun(int x); //声明一个函数
int (*f) (int x); //声明一个函数指针
f=fun; //将fun的首地址赋值给f
九、结构体
结构体就相当于是一个数据类型
例:struct (student)
{
}(sd1,sd2);
(struct student sd1,sd2);
-----------------------------------------------------------------
struct (student)
{
}sd1={ , , , ,};
sd1. = ;...
共用体 用法同上
union data
{
};
十、文件 待续
C语言基础知识小总结(2)的更多相关文章
- C语言基础知识小总结(1)
这几天在学习C语言,零零散散的学了十来天,这两天由于家里来了朋友,也没有顾得上写个总结,今天刚把朋友送走,下面就把这十来天的学习情况总结一下,一边在以后好复习与查看. 一.流程控制包括:顺序语句.判断 ...
- java基础知识小总结【转】
java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...
- java基础知识小小结
java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...
- ios开发学习笔记001-C语言基础知识
先来学习一下C语言基础知识,总结如下: 在xcode下编写代码. 1.编写代码 2.编译:cc –c 文件名.c 编译成功会生成一个 .o的目标文件 3.链接:把目标文件.o和系统自带的库合并在一起, ...
- C语言基础知识-程序流程结构
C语言基础知识-程序流程结构 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.概述 C语言支持最基本的三种程序运行结构:顺序结构,选择结构,循环结构. 顺序结构:程序按顺序执行, ...
- C语言基础知识-运算符与表达式
C语言基础知识-运算符与表达式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常用运算符分类 1>.算术运算符 用于处理四则运算. 2>.赋值运算符 用于将表达式的 ...
- C语言基础知识-数据类型
C语言基础知识-数据类型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常量与变量 1>.关键字 C的关键字共有32个. >.数据类型关键字(12个) char,s ...
- OC语言基础知识
OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...
- 李洪强iOS开发之OC语言基础知识
OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...
随机推荐
- 解决linux下导入数据库乱码问题
引言:在windows下的mysql数据库导出SQL文件,在Linux下导入后显示为乱码. 1.启动Mysql服务及创建数据库(下面uushop为我将创建的数据库名) service mysqld s ...
- struts2文件异步上传
代码结构 用到的js文件: 用到的jar包: jar和js库文件下载地址:下载地址 首先我们写FileAction类 package com.ajaxfile.action; import java. ...
- java WeakReference
在Java 1.2中就引入了java.lang.ref这个包,WeakReference就属于这个包.WeakReference是干嘛的呢,一言弊之,它是和Java中的垃圾回收相关的.如果一个对象只有 ...
- System.Windows.Forms中的Message Structure
结构用途说明Implements a Windows message. Properties 1.public IntPtr HWnd { get; set; } Gets or sets the w ...
- CentOS 如何将.deb 文件 转换.rpm
CentOS 如何将.deb 文件 转换.rpm [root@localhost tmp]#tar zxvf alien_8.88.tar.gz [root@localhost alien]#perl ...
- bzoj3172
这里学习AC自动机其实对KMP和trie掌握好了之后很容易扩展成AC自动机的这里运用了一个性质由失配指针反向可以建成一棵fail树x串在y串中的出现的次数即为在fail树上以x结尾节点为根的子树中有多 ...
- 基于mongoDB的capped collection的性能优化
MonitorLogging改造(消息接入) 改造前架构: 可以看出原来的流程中,大量业务分析,业务接入耦合在web服务层.大量操作,导致线程线性的挂起线程. 改造后: 将业务通讯抽象成为Monito ...
- Web---自己写的一个简单云相册~
实现的功能是: 用户可以一次上传一个至多个文件. 用户可以下载其他人上传的图片. 用户可以查看其他所有人的图片. 用户只能删除通过自己IP上传的图片. 用到的技术: 文件上传下载.设计模式.Dom4j ...
- Microsoft.Jet.Oledb.4.0 提供者並未登錄於本機電腦上
最近把一些 .NET2.0 的專案從 x86 的 Server 搬到 x64 的 Server 上,一直都相安無事,直到今天才發現使用 Oledb 讀取 Excel 的時候會跳出「'Microsoft ...
- Struct标签
通用标签: 1. property 2. set i. 默认为action scope,会将值放入request和ActionContext中 ii. ...