首先是对之前的回顾
此处我用的编译器是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码表
选择语句
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;
}
关于单目操作符以下是还没讲到的
以上就是对鹏老师第二节课的全部总结和再梳理,有一些中文解释是我自己的看法,如果不对请私信评论告诉我我立马改正