首先是对之前的回顾

此处我用的编译器是dev c++6.3,但是鹏老师的编译器不一样

int main()

{
	int num1,num2;
	scanf("%d%d",&num1,&num2);//scanf_s是vs编译器提供的不是标准c语言,不能在其他例如gcc上使用
	scanf,strcpy,strlen,...,不安全的所以编译器自带#define_CRT_SECURE_NO_WARNINGS
	sum=num1+num2;
	printf("%d\n",sum);
	return 0;
}

常量

第一种最简单1,2,3

第二种const

int main()
{
	const int num=4;
	printf("%d\n",num);
	//num=8;进行不下去,报错!
	printf("%d\n",num);
	//const-常属性
	//const修饰的常变量,本质不变还是变量,如下
	//const int n=10;//n是变量,但是又有常属性,所以我们说n是常变量
	//因此n=20;无法运行
	int arr[10]={0};//创建一个arr数组,包含十个整型元素
	//[]内必为常量
	printf("%d\n",arr);
	return 0;
}

第三种#define定义的标识符常量

#define MAX 10//第三种常量,#define定义的标识符常量
int main()
{
	int arr[MAX]={0};
	printf("%d\n",MAX);
	return 0;
}

第四种枚举常量

//4.枚举常量
//枚举--一一列举
//性别:男,女,保密
//三原色:红,黄,蓝
//星期:1234567
//枚举关键-enum
enum Sex
{
	MALE,
	FEMALE,
	SECRET
};
MALE ,FEMALE,SECRET-枚举常量
int main()
{
	enum Sex s=FEMALE;
	printf("%d\n",MALE);//0
	printf("%d\n",FEMALE);//1
	printf("%d\n",SECRET);//2
	return 0;
	
}
enum Color
{
	RED,
	YELLOW,
	BLUE
};

int main()
{
	enum Color color=BLUE;
	printf("%d\n",color);
	并且大括号内的枚举常量无法改变
	不能定义BLUE=6只能是大括号外的2
	return 0;
}

字符

//char字符类型
//字符串类型--由双引号引起的一串字符
	//"abcdef";
	//"hello bit";
	//"";//空字符串
int main()
{
	char arr1[]="abc";//把字符串放在数组里面
	//"abc"--'a','b','c',\0--默认放一个\0,是字符串的结束标志
	char arr2[]={'a','b','c'};
	//没有结束标志,所以继续随机打印'\0'或'0',所以要加
	//'\0'---0   'a'--97   ASCII码值
	printf("%s\n",arr1);
	printf("%s\n",arr2);
	printf("%d\n",strlen(arr1));//strlen-string length-计算字符串长度
	printf("%d\n",strlen(arr2));//随机值?
	return 0;
}

\0属于转义字符

何为转义字符?

int main ()
{
	printf("abc\n");
	printf("c:\test\32\test.c");// \t--指水平制表符类似tab
	
}

int main ()
{
	printf("(are you ok??)\n");//报warning ??+)解析为三字母词
	printf("(are you ok\?\?)\n");//在书写连续多个?时使用防止他们被解析为三字母词
	return 0;
}

int main ()
{
	printf("c:\\test\\32\\test.c");//双斜杆\\让\t的斜杠只是个斜杠而不再是组成水平制表符的斜杠
	//  \\用于表示一个反斜杠,防止被解析为转义字符的斜杠
	return 0;
}

int main ()
{
	printf("%c\n",'\'');//转义字符让单引号只是单引号
	printf("%s\n","\"");//同理
	//注意格式%c后面只能用单引号,%s只能双引号
	return 0;
}

int main ()
{
	int a;
	printf("asda\asada\n");//"\a"警告字符,蜂鸣
	printf("abb\bas\n");//"\b"退格符,让前面那个消失
	printf("asb\fqdasda\n");//"\f"进纸符,不显示
	printf("asda\rjjsasas\n");//"\r"回车理解为前面全部删掉
	printf("dasda\tda\vsda\n");//"\v"垂直制表符,过行
	printf("代码\n%d\n",a);//"\n"过行等于printf("代码\n")printf("%d\n,a)
	return 0;
}

#include <string.h>
int main ()
{
	printf("%d\n",strlen("c:\test\32\test.c"));//"\32"--是2个8进制数字
	//32作为8进制代表的那个十进制数字,作为ASCII码值,对应的字符
	//32-->10进制-->26
	//有点乱,整理一下就是八进制只有0~7的组成不能有其他,如382
	printf("%c\n",'\132');//转化为十进制1*64+3*8+2*1=90对应ASCII码表是"Z"
	return 0;
	
}

int main ()
{
	printf("%c\n",'\x61');//十六进制转为十进制
	61-->6*16+1*1=97-->a
	return 0;
}

关于ASCII码,以下是ASCII码表

c语言初学笔记2_数组

选择语句

int main()
{
	int input;
	printf("Do you want to join BiTe?\n");
	printf("Can you study hard?(1/0)>:");
	scanf("%d",&input);//1 or 0
	if(input==1)
		printf("Good Offer\n");
	else
		printf("Sell red potatoes\n");
	return 0;
}

循环语句

int main()
{
	int line=1;
	printf("加入比特\n");
	while(line<=100)
	{
		printf("代码: %d\n",line);
		line++;
	}
	if(line>=100);
		printf("好offer\n");

	return 0;
}

函数

f(x)=2*x+1;

f(x,y)=x+y;

int Add(int x,int y)//"Add"-->函数名,括号内叫函数的参数
{
	int z=x+y;
	return z;
}//自定义函数
int main()
{
	int num1=10;
	int num2=20;
	int sum1,sum2;
	int a=100;
	int b=200;
	//sum=num1+num2;
	sum1=Add(num1,num2);
	//sum=a+b;
	sum2=Add(a,b);
	printf("sum=%d\nsum=%d\n",sum1,sum2);//类似这种称为库函数
	return 0;
}

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

int main()
{
	//定义一个存数10个整数数字的数组
	char ch[20];
	float arr2[5];//都是在创建一个数组
	return 0;
}

int arr[10]={1,2,3,4,5,6,7,8,9,10}像这种类型的内存分布

arr1,2,3.....

下标0,1,2.....

用下标的方式访问元素,如arr[下标]

定义数组每一个元素,然后让下标表示他们

int main()
{
	int i=0;
	int arr[10]={1,2,3,4,5,6,7,8,9,10};
	while(i<10)
	{
		printf("%d ",arr[i]);
		i++;
	}
	return 0;
}

操作符

算术操作符“/”--除号,去商分数也是,“%”--取余,其他+-*简单

移位操作符

int main()
{

	//移(2进制)位操作符
	//<<左移
	//>>右移
	int a=1;
	//整型1占4个字节=32bit位
	//00000000000000000000000000000001,31个0
	int b=a<<1;
	printf("%d\n",b);//1*2=2十进制
	//注意a不变
	return 0;
}

位操作符(二进制位)

int main ()
{
	//(2进制)位操作
	//&按位与
	//|按位或
	//^按位异或
	int a=3;
	int b=5;
	int c=a&b;
	//011
	//101
	//001,一位对应一位并起来,相同1才是真才可以保留
	printf("%d\n",c);
	int d=a|b;
	//111,假也可以都并起来
	printf("%d\n",d);
	int e=a^b;
	异或的计算规律
	对应的二进制相同,则为0
	对应的二进制相异,则为1
	//011
	//101
	//110
	printf("%d\n",e);
	return 0;
}

赋值操作符

int main()
{
	int a=10;
	a=20;//赋值       ==判断相等
	a=a+10;//上下完全等价
	a+=10;
	a=a-20;
	a-=20;
	a=a&2;
	//复合赋值符
	//+= -= *= /= %= >>= <<= &= |= ^=
	return 0;
}

单目操作符 !  -负值  +正值  &    sizeof  

双目操作符

三目操作符

int main ()
{
	//int a=10;
	//int b=20;
	//a+b;//+双目操作符
	int a=10;
	//c语言中我们表示真假
	//0-假
	//非0-真
	printf("%d\n",a);//a非零
	printf("%d\n",!a);//!-->逻辑反操作
	return 0;
}
int main ()
{
	int a=0
	printf("%d\n",a);//0假
	printf("%d\n"!a);//1
	return 0;
}


sizeof-->计算一个数据类型的长度
int main ()
{
	int arr[10]={0};//十个整型元素的数组
	//10*sizeof(int)=40
	printf("%d\n",sizeof arr);
	//计算数组的元素的个数
	//个数=数组总大小/每个元素的大小
	int sz=0;
	sz=sizeof(arr)/sizeof(arr[0]);
	printf("sz=%d\n",sz);//新方法
	int a=10;
	printf("%d\n",sizeof(a));
	printf("%d\n",sizeof(int));
	printf("%d\n",sizeof a);//这个可以
	printf("%d\n",sizeof int);//这种不能省略括号
	return 0;
}

关于单目操作符以下是还没讲到的

c语言初学笔记2_数组_02

以上就是对鹏老师第二节课的全部总结和再梳理,有一些中文解释是我自己的看法,如果不对请私信评论告诉我我立马改正