B站C语言学习,颠覆谭浩强C语言,可能是最好的C语言视频 【自用笔记】

c语言头文件代码
#define _CRT_SECURE_NO_WARNINGS //防止会出现某个函数出现不匹配的情况。
#include <stdio.h>
#include<>
int main()
{
    
    
//写代码区域。
//记得写return0;

}

数据类型

%d  -打印整型
%c  -打印字符
%f  -打印浮点数字 -小数
%s  -打印字符串
%p  -打印地址
字符,整型,浮点型
//字符:char

char ch='A'printf ("%c\n",ch)
//整型 short int ; int ; long ;

///short int 短整型
///int 整型
///long  长整型

short int  q = 5printf ("%d/n",q)int  w = 5printf ("%d/n",w)long  e= 5printf ("%d/n",e)
//浮点型
float f = 5.0printf ("%f/n",f)
//浮点型
float f = 5.0printf ("%f/n",f)
sizeof 展示字节大小

在这里插入图片描述
计算机中单位:字节
bit 比特位:存放一个二进制位
byte 字节:1 byte = 8 bit
kb:1 kb =1024 bit

变量 常量

int age = 20;
float weight = 95.6f; //防止出现警告

变量

变量:全局变量 /局部变量
 全局变量:定义在({})以外的变量
 局部变量:定义在({})以内的变量------作用域:局部变量所在的局部范围
int a= 100; //全局变量
int main ()
{
    
    
int b = 20; //局部变量
}

/// 全局变量与局部变量可以同时存在,但当两者名字一样的,局部变量>全局变量。
// 建议全局变量与局部变量的名称不要相同。

变量的使用
 //计算两个数的和
 int num1 = 0;
 int num2 = 0;
 scanf("%d%d",&num1,&num2);
 int sum = 0;// c语言规定,变量要定义在当前代码块的最前面【最好就是把这句话写到定义的位置】
 sum =n um1+num2;
 printf("sum = %d/n",sum);
 return 0;
 
 
 //输入数据--使用输入函数
 //输入函数: scanf("%变量类型”,&变量名称)

变量的作用域和生命周期

作用域:

	全局变量的作用域是整个工程。
	局部变量的作用域是变量所在的局部范围。

生命周期:

	全局变量的生命周期:整个程序的生命周期
	局部变量的生命周期:进入作用域生命周期开始,出作用域生命周期结束。

常量

const修饰的常变量
//const 后,num后续不可以修改。
const int num =4;
define定义的标识符常量
#define Max 10 //define定义的标识符常量

int main(){
    
    
printf("%d\n",MAX);
return  0;
}
枚举常量:可以一一列举
//性别:男,女,
//三原色:红、黄、蓝
//星期: 1,2,3,4,5,6,7

enum Sex
{
    
    
MALE;
FEMALE;
}

int  main()
{
    
    
printf("%d\n",MALE);
printf("%d\n",FEAMALE);

return 0;
}



>>>>>>输出结果:
0
1

字符串+转义字符+注释

字符串

	字符串的结束标志是一个\0 的转义字符。
	在计算字符串长度的时候 \0 是结束标志,不算作字符内容。

在这里插入图片描述

//字符串类型
//int float
//char


int main()
{
    
    
	char arr1[]="abc";//char类型的数组进行存放数组
	//"abc"---'a','b','c','\0'  默认有一个\0
	//【为了防止会出现“烫烫烫烫“的问题,最好在字符输出时候加上'\0'作为结束标志】
	char arr2[]="hello world";
	char arr3[]={
    
    'A','B','C'};
	printf("%s\n",arr1);//简单输入输出
	printf("%s\n",arr2);
	printf("%s\n",arr3);
	
	
	return  0;
	
}

>>>>>>输出结果:
abc
hello world
ABC
strlen() 计算字符串的长度

在这里插入图片描述

>>>>>> 输出结果:
3
随机值

转义字符

		\t 		----水平制表符【相当于键盘上的tab】
		\\		----用于表示一个反斜杠,防止它被解释为一个转义序列符.
		\"		----用于表示一个字符串内部的双引号
		\b		-----退格符
		\n		-----换行
		\r  	-----回车
		\ddd	---ddd表示1-3个八进制的数字  。  例如:\130x
		\xdd	---dd表示2个十六进制数字。例如:\x30
\ddd的含义详解: —ddd表示1-3个八进制的数字
【\323228进制数字
//3   2     作为8进制代表的那个十进制数字,作为ASCII码值,对应的字符
//32 -- 》 10进制 26 - -》作为ASCII码值代表的字符是“->”

在这里插入图片描述

\xdd的含义详解:—dd表示2个十六进制数字
【\6161216进制数字
//6    1   作为16进制代表的那个十进制数字,作为ASCII码值,对应的字符
//6    1 -- 》 16进制 97 - -》作为ASCII码值代表的字符是“a”

在这里插入图片描述

注释

1.代码中有不需要的代码可以直接删除,也可以注释掉
2.代码中有些代码比较难懂,可以加一下注释文字
方法①
//某句单独注释
方法②
/*
某段注释
*/

选择语句

	 if .... else....

循环语句

	 while语句
	 for语句
	  do ... while语句

函数:库函数/自定义函数

//自定义函数:Add函数
Add(int x,int y)
{
    
    
int z =  x+y;
return z;
}


int main()
{
    
    
	int a =100;
	int b=1;
	int num = 0;
	sum = Add(a,b);
	printf("sum= %d\n",sum);
	return 0;
}

数组:一组相同类型元素的集合

数组下标从0开始
//定义一个整形数组,最多放10个元素
int arr[10] = {
    
    1,2,3,4,5,6,7,8,9,10};


//创建数组
int arr[] = {
    
    0,1,2,3,4}
int arr[10]={
    
    0}

//打印单独的数组元素
printf("%d\n",arr[4]);//下标的方式访问元素
arr[下标];

//打印全部数组的元素
//打印 0-9的元素
int i=0;
while(i<10)
{
    
    
	printf("%d ",arr[il);
	i++;
}

操作符

算术操作符:+ - * /('除'得到的商) %('取模'得余数)

移(2进制)位操作符:>>(右移:乘2)  <<  (左移 :除2)

位操作符: &(按位与) ^(按位或) |(按位异或)

赋值操作符:=,  += , -= 

单目操作符:!(逻辑反操作),+,&(取地址),sizeof,~(二进制按位取反),
			--,++,&(间接访问操作符(解引用操作符)),()(强制进行类型转换)
						
逻辑操作符:&&(逻辑与),||(逻辑或)

关系操作符:>, >=, < , <=, !=, == 

条件/三目操作符:exp1 ? exp2 : exp3(exp1是真,运行exp2; exp1为假,运行exp2)

下标引用、函数调用和结构成员:[ ], (), . ,->
单目操作符: sizeof

在这里插入图片描述

单目操作符:~(按二进制位取反)

在这里插入图片描述
在这里插入图片描述

单目操作符: --:前置–,后置–
//后置--:先使用,再--
int main(){
    
    
	int a = 10;
	int b = a--;
	printf("a=%d  b=%d\n",a,b);// a= 9  b=10
	return 0;
}


//前置--:先--,后使用
int main(){
    
    
	int a = 10;
	int b = --a;
	printf("a=%d  b=%d\n",a,b);// a= 9  b=9
	return 0;
}

单目操作符:++:前置++,后置++
前置++:先++,后使用
后置++:先使用,再++
//后置++:先使用,再++
int main(){
    
    
	int a = 10;
	int b = a++;
	printf("a=%d  b=%d\n",a,b);// a= 11  b=10
	return 0;
}


//前置++:先++,后使用
int main(){
    
    
	int a = 10;
	int b = ++a;
	printf("a=%d  b=%d\n",a,b);// a= 11  b=11
	return 0;
}

逻辑操作符:&& - 逻辑与(全真为真)
int main(){
    
    
	//真 - 非0
	//假 -	0
	//&& - 逻辑与
	int a =9;
	int b = 5;
	int c=a&& b;
	printf("c= %d\n",c); // c = 1
	return 0;
}
逻辑操作符:|| - 逻辑或(有真为真)
int main(){
    
    
	//真 - 非0
	//假 -	0
	//|| - 逻辑或
	int a =0;
	int b = 5;
	int c=a || b;
	printf("c= %d\n",c);//c = 1
	return 0;
}
条件操作符:exp1 ? exp2 : exp3
int main(){
    
    
	int a=10;
	int b = 20;
	int max = 0:

	if	(a>b)
		max =a;
	else
		max = b;

//max=(a>b ?a:b)  //a>b的话,输出a;否则输出b
	return 0}

常见关键字

在这里插入图片描述

关键字 static
static是用来修饰变量和函数的
		1.修饰局部变量-静态局部变量:局部变量的生命周期变长
		2.修饰全局变量-静态全局变量:改变了变量的作用域,让静态的全局变量只能在自己所在的源文件内部使用,出了原函数就没办法再使用了。
		3.修饰函数-静态函数:改变了函数的链接属性----外部链接属性-->内部链接属性
void test(){
    
    
	int a = 1;
	a++;
	printf("a= %d\n" ,a);
}

int main(){
    
    
	int i=0;
	while(i<5)
	{
    
    
		test();
		i++;
	}
	return 0;
}

>>>>>输出结果:
a=2
a=2
a=2
a=2
a=2

加上static后:修饰局部变量-静态局部变量:局部变量的生命周期变长

void test(){
    
    
	static int a = 1;  //static 修饰局部变量//局部变量的生命周期变长
	a++;
	printf("a= %d\n" ,a);
}

int main(){
    
    
	int i=0;
	while(i<5)
	{
    
    
		test();
		i++;
	}
	return 0;
}

>>>>>输出结果:
a=2
a=3
a=4
a=5
a=6

#define定义常量和宏

//#define 定义标识符常量
#define MAX 100


//#define 可以定义宏-带参数
#define MAX(x,y)  (x>y?x:y)

指针

所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节
为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址

在这里插入图片描述

int main(){
    
    
	int a = 10;
	p = &a; 
	printf("%p\n",&a);//有一种变量是用来存放地址的-指针变量
	return 0;
	}
int main(){
    
    
	int a = 10;//创建变量啊,大小为4个字节
	int* p = &a; //取a的地址,存放到p里面
	printf("%p\n",&a);//有一种变量是用来存放地址的-指针变量
	printf("%p\n",p);

	*p=20; // 解引用操作符  //把20放到p里面去,此时p里面存放的a的数值是20
	return 0;
	}

在这里插入图片描述

##### 指针变量的大小

结构体

//输入函数: scanf(“%变量类型”,&变量名称)
//输出函数:printf(”%变量类型",变量名称)
// ‘\n’ 换行符
// ‘\0’ 字符串的结束标志
// sizeof() 查看字符类型
// strlen() 计算字符串的长度

//求两个数目中的较大值
int MAX(int x,int y){
    
    
	if(x>y)
		return x;
	else
		return y;
}
int main(){
    
    
	int num1=10;
	int num2=20;
	int max=0;
	max=MAX(num1,num2);
	printf("MAX= %d\n",max);
	return 0;



}

猜你喜欢

转载自blog.csdn.net/becomeyee/article/details/130689718