文章目录
前言
自己记的一点学习笔记,简单认识一下C语言的基本知识。
一、C语言是什么
c语言是是一门通用计算机编程语言,C语言的设计目标是提供一种能以简易
的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
二、C语言的基本知识
1.数据类型
char | 字符数据类型 |
---|---|
short | 短整型 |
int | 整形 |
long | 长整型 |
float | 单精度浮点数 |
double | 双精度浮点数 |
… |
各数据类型的大小,单位是字节。
数据的作用:存储相对应的数据
int main() {
//定义一个name
char name[] ="zhangsan";
//定义一个年龄
int age = 18;
//定义一个体重
float weight = 55.5f;
//.....
return 0;
}
2.变量和常量
一.变量:一个可以改变的值
a 定义变量的方法
int age = 18;
float weight = 45.5f;
char ch = 'H';
b.变量的命名
1 .只能由字母(包括大写和小写)、数字和下划线( _ )组成。
2.不能以数字开头。
3.长度不能超过63个字符。
4.变量名中区分大小写的。
5**.变量名不能使用关键字。**
c.变量的分类
变量可以分为局部变量和全局变量
#include <stdio.h>
int i=1;//全局变量
int main()
{
int i=2;//局部变量
printf("%d",i) //打印结果是2
return 0;
}
记住:当局部变量和全局变量同名的时候,局部变量优先使用。
变量的作用域和生命周期:
1. 局部变量的作用域是变量所在的局部范围
2. 全局变量的作用域是整个工程。
3. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
4. 全局变量的生命周期是:整个程序的生命周期。
二.常量:一个不可以改变的值
1.字面常量
3.14;
200;
2.const 修饰的常变量
const int age=18;
//age 是不能修改的
//例如: age=19; //err
3.#define 定义的标识符常量
#define i 1
printf("%d ",i); // 打印结果为 :1
3.字符串,转义字符
1.字符串
"hello world"
//这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符
串。
char arr1[]=“hello”
char arr2[]={‘h’,‘e’,‘l’,‘l’,‘o’};
char arr3[]={‘h’,‘e’,‘l’,‘l’,‘o’,‘\0’};
printf(“%s\n”,arr1);
printf(“%s\n”,arr2);
printf(“%s\n”,arr3);
结果:
2.转义字符
\ ? | 在书写连续多个问号时使用,防止他们被解析成三字母词 |
---|---|
\n | 换行 |
\b | 退格符 |
\t | 水平制表符 |
\r | 回车 |
\ ’ | 用于表示一个字符串内部的双引号 |
\ | 用于表示一个反斜杠,防止它被解释为一个转义序列符。 |
\ddd | ddd表示1~3个八进制的数字。 |
\xdd | dd表示2个十六进制数字 |
… | … |
4.选择语句
例如:
中午吃什么?
1.吃米饭。->吃饱了
2.吃零食。->没有吃饱。
int main(){
printf("中午吃什么?,请选择:1 还是 2\n");
int n=0;
sacnf("%d ",&n);
if(n==1)
printf("吃饱了\n");
else
printf(”没有吃饱\n“);
}
5.循环语句
1.while语句
while(判断是否循环的条件){循环体}
举个例子
int main(){
int i=0;
while(i<32){
i++;
}
return 0;
2.for语句
for(expr1;expr2;expr3){循环体}
举个例子
int main(){
int i=0;
for(i=1;i<32;i++){
printf("%d\n",i);
}
return 0;
}
3.do …while语句
do{循环体}while(判断条件)
举个例子
int main(){
int i=0;
do{
i++;
}
while(i<32)
return 0;
}
6.函数
函数的特点就是简化代码,想使用这个函数的功能就可以调用。
int main(){
//如果我想输入两个数字,得到它们的乘积(不使用函数的方法)
int num1=0;
int num2=0;
scanf("%d %d",&num1,&num2);
int sum=0;
sum=num1+num2;
printf("%d\n",sum);
return 0;
}
//使用函数的方法
int mul(int x,inty){
return x*y;
}
int main(){
int num1=0;
int num2=0;
scanf("%d %d",&num1,&num2);
printf("%d\n",mul(num1,num2));
return 0;
}
7.数组
1.数组的定义
数组的定义:一组相同类型元素的集合
例如:
int main(){
char arr[10]="zhangsan"//定义一个字符数组,最多可以放下10个元素
return 0;
}
2.数组的下标
数组的每个元素都有一个下标,下标是从0开始的。
例如:
char arr[5]={0};
3.数组的使用
int main(){
int i=0;
char arr[5]="zhang"
while(i<5){
printf("%c\n",arr[i]);
i++;
}
return 0;
}
8.操作符
简单认识下
算术操作符:+ - * / %
移位操作符:>> <<
位操作符:& ^ |
赋值操作符:= += -= = /= &= ^= |= >>= <<=
单目操作符:! 、-、+、&、sizeof、–、++、、…
关系操作符:>、>= 、<、 <= 、!=、 ==
9.常见的关键字
C语言提供了丰富的关键字,这些关键字都是语言本身预先设定好的,用户自己是不能创造关键字的。
1.关键字static
static是用来修饰变量和函数的
a. 修饰局部变量-称为静态局部变量
b. 修饰全局变量-称为静态全局变量
c. 修饰函数-称为静态函数
static修饰局部变量
static修饰局部变量改变了变量的生命周期
让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束。
static修饰全局变量
一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用,不能在其他源文件内使用。
static修饰函数
一个函数被static修饰,使得这个函数只能在本源文件内使用,不能在其他源文件内使用。
10.指针
指针是一个变量,用来存放地址的。
指针如何定义和使用
int main(){
int i=8;
char ch='h';
// 定义
int* pa=&i; //pa就是一个指针,类型是整形指针
char* pch=&ch; //pch也是一个指针,类型是字符指针。
//使用
*pa=9;
*pch='z';
return 0;
}
指针的大小
指针变量的大小取决于地址的大小
32位平台下地址是32个bit位(即4个字节)
64位平台下地址是64个bit位(即8个字节)
11.结构体
如果我要描述一个多项信息的东西,就需要用结构体
例如:
strcut stu {
char stuno[20];
int age;
char name[20];
....
}
结构体的初始化和使用
strcut stu {
char stuno[20];
int age;
char name[20];
//....
}
int main(){
//定义
struct stu student1={"20211234567",18,"lisi"};
//打印
printf("stuno=%s age=%d name=%s \n",student1.stuno,student1.age,student1.name)
return 0;
}