C语言学习笔记
c语言的发展、特点与程序结构
c语言的发展和特点
程序设计的基本方法
算法+数据结构=程序
算法的概念及其表示
c语言的基本结构
c语言程序基本结构
c语言的字符集、关键字和标识符
c语言的字符集中不包含
$
,汇编语言中可以使用$
c语言的关键字
scanf和printf不是关键字
标识符
基本数据类型、运算符和表达式
数据与数据类型
常量、变量和标准函数
常量
常量是程序执行期间其值保持不变的量
c语言中有以下几种类型的常量
整型常量
整型常量有三种形式:
- 十进制整数:如:11,-13,0,65535,…
- 八进制整数:由数字0开头
- 十六进制整数:由0x开头
整数又可分为:
- 长整型整数:用后缀L/l表示
- 无符号整数:用后缀U/u表示
- 无符号长整数:用后缀UL/ul表示
实型(浮点型)常量
字符常量
转义字符
要注意在转义字符中,用
\ddd
表示用八进制数字表示字符的ascii码,用\xhh表示用十六进制数字表示字符的ascii码,区别于表示数字时的0前缀和0x前缀
字符串常量
变量
整型变量
实型变量
标准函数
海伦公式求三角形的面积:
假设在平面内,有一个三角形,边长分别为a、b、c,三角形的面积S可由以下公式求得:
基本运算符及其表达式
基本算术运算符
整数相除时会丢掉余数,浮点数相除时不会丢掉余数
自增、自减运算符
自增自减运算符只能用于变量
不同数据类型间的转换和运算
关系运算(比较运算)
逻辑运算符与逻辑表达式
逻辑与、逻辑或都具有短路特性
运算顺序
三目运算符
赋值运算符和赋值表达式
C/C++中 (A = B) 返回得到是赋值号(=)的左面的值
逗号运算符和逗号表达式
运算符的优先级
基本语句与顺序结构
c语言程序的基本语句
表达式语句、函数调用语句、控制语句、复合语句、空语句,赋值语句,;
是c语句结束标志
数据的输入输出
printf()函数
scanf()函数
scanf()函数输入实数时,不能用修饰符规定实数的精度,但是可以指定宽度
当格式输入时同时有%c和%d时,需要注意在下一个输入如果是%c时,%c会接收空格,如果下一个输入时%d时,%d不会接收空格
getchar()函数
putchar()函数
选择结构
用if语句实现选择结构
if语句的三种形式
单分支结构
双分支结构
多分支结构
if语句的嵌套
用switch语句实现选择结构
default后若还有case,则执行完毕default之后且没有break,还会继续去执行后面的case语句
循环结构
while语句
do-while语句
for语句
循环的嵌套
break语句、continue语句和goto语句
习题
-
解答
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
int main(){
double sum,t=0,x,y = 1,z;
x=1;
while (t<10){
printf("%f的阶乘是:",t);
for (int i = t;i>0;i--)
{
y *=i;
}
printf("%lf\n", y);
if (t==0){
x = 1;
} else{
for (int i = t; i > 0;i--){
x *= x;
}
}
sum += x/y;
printf("sum是%lf\n",sum);
y=1;
t++;
x=1;
}
printf("%lf",sum);
return 0;
}
数组
一维数组
例题
c语言代码:
1 |
|
二维数组
例题
图解:
c实现代码:
1 |
|
字符数组
-
字符数组中未定义的位置上会默认是
'\0'
,整型数组中未定义的位置上会默认是0
, -
字符数组可以用
1
char c[5]={"abc"}
来初始化,需要注意字符串结尾有一个
\0
, 如果要用字符数组保存此字符串时需要给字符串最后的没有显示出的\0
留出位置。
字符串输出格式控制字符
字符串输入函数
scanf()函数不能接收空格和制表符
gets()函数可以接收空格和制表符
字符串输出函数
字符串处理函数
-
strcpy
原型:
char *strcpy (char * __dest, const char * __src);
功能:将一个字符串(__src
)拷贝到另一个字符串缓冲区中(__dest
),并返回拷贝后的字符串指针;注意:strcpy()函数会把源字符串的结束符号
\0
也复制到目的字符串 -
strcat
原型:
char *strcat (char *__dest, const char *__src);
功能:将一个字符串(__src
)拼接到另一个字符串缓冲区中(__dest
),并返回拼接后的字符串指针; -
strlen
原型:
size_t strlen (const char *__s);
功能:返回一个字符串(__src
)的长度,即字节(符)数,这里仅考虑ASCII字符; -
strcmp
原型:
int strcmp (const char *__s1, const char *__s2);
功能:比较字符串__s1
和字符串__s2
,返回比较结果,如果相等,则返回0;
比较方式:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇’\0’为止;
返回结果:当s1<s2时,返回值<0;当s1=s2时,返回值=0;当s1>s2时,返回值>0;
函数
函数概述
函数的分类与定义
函数调用
函数的嵌套调用和递归调用
变量的作用域和生存期
变量的存储类别
内部函数和外部函数
指针
指针和指针变量的概念
指向变量的指针变量
指针变量的定义
指针变量的引用
指针变量的初始化
指针变量作为函数参数
指针与数组
指针变量的运算
一维数组的指针
数组名作为函数参数
字符串的指针和指向字符串的指针变量
不能通过字符串常量指针修改字符串,因为字符串存储在常量区。而常量区的字符串(也包括其他数据)只有读取权限,没有写入权限。
指针的指针
指针数组
指针的指针
结构体
定义结构类型
结构体类型变量所占字节数是其所有成员所占字节数之和
定义结构类型变量
结构变量的引用
共用体
- 共用体所占字节空间是其包含的变量中所占字节数最大的那个所占的字节空间
- 共用体不可以同时给所有成员赋值,共用体不能同时存储所有在其中定义的变量