注释代码的方式
选中需要注释的代码,然后ctrl+/
即可注释代码
// printf("%d\n", strlen(arr)); ctrl+/ 这个也是注释
需要注释的代码在那行代码前面加//
也可以注释代码
// scanf("%d%d", &a,&b); // 注释代码
输入输出函数
介绍了C语言中的标准输入输出函数,以及使用方式。
scanf函数
scanf函数用于用户输入
scanf("%d", &a); //scanf输入
printf 函数
printf用于输出
printf("%d\n",a); //printf输出
主函数
每个C语⾔程序不管有多少⾏代码,都是从 main
函数开始执行的,main
函数是程序的入口,它也被叫做:主函数 。main
前⾯的 int
表⽰main
函数执⾏结束的时候返回⼀个整型的值。所以在 main
函数的最后写return 0
正好前后呼应,还有main
后面的()不要忘记。
int main() //主函数
{
return 0;
}
头文件
标准库头文件包含了预定义的函数声明和宏定义,它们是C语言的一部分。例如:
<stdio.h>
- 输入输出流的标准头文件,包含了如 printf
, scanf
等函数的声明。
<stdlib.h>
- 提供了内存分配、环境使用、转换等功能的头文件,如 malloc
, free
, atoi
等。
<string.h>
- 字符串操作的头文件,包括 strcpy
, strlen
, strcat
等。
<math.h>
- 数学函数的头文件,如 sin
, cos
, sqrt
等。
<stdbool.h>
- 布尔类型的定义,提供了 true
和 false
宏。
<stddef.h>
- 包含了 NULL
宏和 size_t
类型的定义。
如何使用头文件
你的源文件中,你可以使用 #include
指令来包含所需的头文件。例如:
#include <stdio.h>
int main(void) {
printf("Hello, World!\n");
return 0;
}
C语言关键字
c语言中有一些保留的名字的符号,比如:int
,if
,return
,这些符号被叫做关键字。
关键字都有特殊的意义,是保留给C语⾔使⽤的,关键字不能自己去创建,自己创建标识符不能和关键字重复
c语言的32个关键字如下:
auto break case char const continue default do double else enum ex
float for goto if int long register return short signed sizeof
struct switch typedef union unsigned void volatile while
基础数据类型
字符型
char
[signed] char
unsigned char
整型
//短整型
short [int]
[signed] short [int]
unsigned short [int]
//整型
int
[signed] int
unsigned int
//⻓整型
long [int]
[signed] long [int]
unsigned long [int]
//更⻓的整型
//C99中引⼊
long long [int]
[signed] long long [int]
unsigned long long [int]
浮点型
float
double
long double
操作符
单目操作符
后置,前置++
int main ()
{
int a = 10;
int b = a++;//后置++,先使用,后++
int b = a; a=a+1;
return 0;
}
int b = ++a;//前置++,前++,后使用
a=a+1;b=a;
强制类型转换()
int main()
int a = (int)3.14;//强制类型转换是把类型放到括号里面
printf("%d\n", a);
return 0;
//3.14 字面浮点数,编译器默认为double类型
sizeof 操作数的类型长度(以字节为单位)计算一个变量所占用的大小
//sizeof是单目操作符
int a = 10;
int arr[10] = { 0 };
printf ("%d\n", sizeof(arr));//40 计算的是整个数组的大小,单位是字节
逻辑操作符
&& 逻辑与 - 并且
int a = 20;
int b = 20;
if (a && b) //两个同时满足才能执行某个事情
printf("hehe\n");
return 0;
}
|| 逻辑或 - 或者
int main()
{
int a = 0;
int b = 20;
if (a || b)
printf("hehe\n"); //只要有一个满足就能够执行
return 0;
}
条件操作符
exp1
? exp2
: exp3
三目操作符,有三个操作数。
exp1
如果为假,那么exp2
不算,exp3
算,整个结果是exp3
的结果
exp1
如果为真,那么exp2
算,exp3
不算,整个结果是exp2
的结果
#include <stdio.h>
int main()
{
int a = 10;
int b = 20;
int r = (a > b ? a : b); //a大于b吗,如果a大于b,那么较大值就是a否则就是b
return 0;
}
指针是什么?
内存
#include <stdio.h>
int main()
{
// int a = 10; //向内存申请4个字节,存储10
// //&a;//取地址操作符
// // printf("%p\n", &a);
// int* p = &a; //p就是指针变量
//*p = 20;解引用操作符,意思就是通过p中存放的地址,找到p所指向的对象,*p就是p指向的对象
// printf("%d\n",a);
//举例
// char ch = 'w';
// char * pv = &ch;
return 0;
}
指针变量的大小
指针变量的大小取决于地址的大小,32位平台下的地址就是32比特位(即4个字节),64位平台下就是64个比特位(即8个字节)
int main()
{
printf("%d\n", sizeof(char *));
printf("%d\n", sizeof(int *));
printf("%d\n", sizeof(double *));
return 0;
}
分支语句和循环语句
什么是语句?
C语言语句分为五类:表达式语句,函数调用语句,控制语句,复合语句,空语句
控制语句
控制语句用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成,C语言有九种控制语句。分为以下三类:
条件判断语句也叫分支语句: if语句,switch语句;
循环执行语句:do while语句,while语句,for语句;
转向语句:break语句,goto语句,continue语句,return语句。
分支语句
if语句
语法结构:
//代码1
if(表达式)
语句;
//代码2
if(表达式)
语句1;
else
语句2;
//多分支
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;
示例代码:
#include <stdio.h>
//代码1
int main()
{
int age = 0;
scanf("%d", &age);
if(age<18)
{
printf("未成年\n");
}
}
//代码2
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if(age<18)
{
printf("未成年\n");
}
else
{
printf("成年\n");
}
}
//代码3
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if(age<18)
{
printf("少年\n");
}
else if(age>=18 && age<30)
{
printf("青年\n");
}
else if(age>=30 && age<50)
{
printf("中年\n");
}
else if(age>=50 && age<80)
{
printf("老年\n");
}
else
{
printf("老寿星\n");
}
}
注意:如果表达式的结果为真,则语句执行。 在C语言中如何表示真假? 0表示假,非0表示真。
如果条件成立,要执行多条语句,怎应该使用代码块。
#include <stdio.h>
int main()
{
if(表达式)
{
语句列表1;
}
else
{ //这里的一对 { }就是一个代码块。
语句列表2;
}
return 0;
}