开始学习的我

#define _CRT_SECURE_NO_WARNINGS 1
//#include<stdio.h>//std-标准-standard input output
//int main()//主函数-程序的入口-main函数有且仅有一个
//int是整型的意思
//main前面的int表示main函数调用返回一个整型值
//void main()已过时
//{

//short age = 20;//向内存申请2byte=16bit位,用来存放20
//float weight = 95.6f;//向内存申请4byte用来存放95.6
//printf("%d\n",sizeof(char));1//print-打印,printf-打印函数,
//printf("%d\n", sizeof(short));2   2^16
//printf("%d\n", sizeof(int));4
//printf("%d\n", sizeof(long));4/8
//printf("%d\n", sizeof(long long));8
//printf("%d\n", sizeof(float));4
//printf("%d\n", sizeof(double));8   数字代表字节  //计算机中单位
		 //C语言标准规定                           // bit-比特位     1\0
		// sizeof(long)>=sizeof(int)     								  // byte-字节   1byte=8bit
// kb   1kb=1024byte
// mb   1mb=1024kb
// gb   1gb=1024mb
// tb   1tb=1024gb
// pb   1pb=1024tb
//return 0;//返回0
//在这里完成任务{}
//}
//数据类型
//char-字符数据类型-储存字符
//short-短整型
//int-整型
//long-长整型
//long long-更长的整型
//float-单精度浮点数,六位小数
//double-双精度浮点数

//%d-打印整型
//%c-打印字符
//%f-打印浮点数字-打印小数
//%p-以地址的形式打印
// %x-打印16进制

//C语言有没有字符串类型?答:没有

//为什么出现这



//变量,常量
//定义变量的方式  // int age = 150;
				//float weight = 45.5f;
				//char ch ="w";
				//类型+变量名+赋值				
//变量的分类 局部(定义在代码块之内的变量) + 全局(定义在代码块之外的变量)  二者名字建议不要相同-容易误会产生bug  同时存在时局部变量优先
//局部变量只能在局部使用

//变量的使用
//#include<stdio.h>
//int main()
//{
//   int num1 = 0;
//   int num2 = 0;
//   int sum = 0;
//   scanf("%d %d", &num1, &num2);   scanf-输入函数  &-取地址符号
//   sum = num1 + num2;             C语言语法规定,变量要定义在当前代码块的最前面
//   printf("sum = %d\n",sum);
//   return 0;
//}

//变量的作用域和生命周期
//作用域-scope,程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的
//而限定这个名字的可用性代码范围就是这个名字的作用域
//变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
//局部变量的生命周期是-进入作用域生命周期开始,出作用域生命周期结束
//全局变量的生命周期是-整个程序的生命周期

//scanf是C语言提供的,scanf_s不是标准C语言提供的,而是VS编译器提供的,无法被其他编译器识别

//常量
//C语言中的常量分为以下几种:1.字面常量  直接的一个数字e.g.3,100,3.14
//                        2.const修饰的常变量  const-常属性,不想让某一个值被改变时,再其前加const
//                        3.#define定义的标识常量
							//#define MAX 10
							//
							//{
							//	int arr[MAX] = { 0 };
							//	printf("%d\n", MAX);
							//
							//	return 0;
							//}
//                        4.枚举常量(enum)  枚举-一一列举,e.g.三原色,星期
						  //enum Sex
						  //{
						  //MALE,
						  //FEMALE,
						  //SECRET
						  //};
						  //以上三值为枚举常量
						  //int main()
						  //enum Sex sex = FEMALE;
						  //printf("%d\n", MALE);//0
						  //printf("%d\n", FEMALE);//1
						  //printf("%d\n", SECRET);//2
						  //return 0;
						  //}

//字符串-由双引号引起来的一串字符称为字符串面值,或者字符串  e.g."abcdef"
// 注:字符串的结束标志是一个\0的转义字符。再计算字符串长度的时候\0是结束标志,不算做字符串内容
   //{
   //   char arrl[]="abc";//数组
   //  char arr2[] = {'a','b','c',0};//0未字符串的结束标志
   //   printf("%s\n", arrl);
   //   printf("%s\n", arr2);
   //
   //   return 0;
   //}

//ASCLL表 
//#include<stdio.h>
//int main()
//{
//char arr1[] = "abc";
//char arr2[] = { 'a','b','c' };
//printf("%d\n", strlen(arr1));//strlen-string length,用来计算字符串长度
//printf("%d\n", strlen(arr2));
//return 0;
//}//3,42(3,随机值)

//转义字符
//{
//	printf("abc\n");//"n"和"\n"不同
//	return 0;
//}

//{
//	printf("c:\\test\\32\\test.c");//"\t"-水平制表符,即Tab(相当于四个空格)	
//	return 0;// \+1,即可解决问题,用\打败\.
//}

//{
//	printf("(are you ok\?\?)\n");//"\?"-在书写连续多个问号时使用,防止它们被解析成三字母词
//	return 0;					 //三字母词及其对应字符:
//}							     //??= 即 #
								 //??( 即 [
								 //??) 即 ]
								 //??< 即 {
								 //??> 即 }
								 //??/ 即 /
								 //??! 即 |
								 //??' 即 ^
								 //??- 即 ~
//{
//	printf("%c\n", '\'');
//	return 0;
//}//'

//#include<stdio.h>
//#include<string.h>
//int main()
//{
//	//printf("%d\n", '\132');
//	//printf("%d\n", strlen("c:\test\32\test.c"));//计算字符串长度
//	//\32——32是2个8进制数字
//	//32作为8进制代表的那个十进制数字,作为ASCII码值,对应的字符
//	//32——>10进制为26——>作为ASCII码值代表的字符
//	return 0;
//}

//#include<stdio.h>
//#include<string.h>
//int main()
//{
//	printf("%c\n", '\x61');//\+数字=八进制,\x+数字=十六进制
//	return 0;
//}

//C语言中的循环:1.while语句
//			    2.for语句
//				3.do...while语句

//#include<stdio.h>
//int main()
//{
//	int line = 0;
//	printf("上大学\n");
//
//	while (line < 20000)
//
//	{
//		printf("敲一行代码:%d\n",line);
//		line++;
//	}
//	printf("好offer\n");
//
//		return 0;
//}

//函数
//#include<stdio.h>
//int Add(int x, int y)//自定义函数-设计
//{
//	int z=x + y;
//	return z;
//}
//int main()
//{
//   int num1 = 10;
//   int num2 = 20;
//   int sum = 0;
//   int a = 100;
//   int b = 200;
//   //sum = num1 + num2;  
//   sum = Add(num1, num2);
//   //sum = a + b;
//   sum = Add(a, b);
//   printf("sum = %d\n",sum);
//   return 0;
//}

//数组:一组相同类型元素的集合
//int arr[10]={1,2,3,4,5,6,7,8,9,10};
//#include<stdio.h>
//int main()
//{
//	int arr[10]={1,2,3,4,5,6,7,8,9,10};//定义一个存放10个整数数字的数组
//	int i = 0;
//	while (i < 10)
//	{
//		printf("%d ", arr[i]);
//		i++;
//	}
//	//printf("%d\n", arr[4]);//下标形式访问元素
//	//arr[下标]
//	//char ch[20];
//	return 0;
//}

//操作符:
//1.算数操作符:+ - * / %(取余数/取模mod)
//2.位移(二进制)操作符:<< >>
//3.位操作符:&(按位与) |(按位或)^(按位异或) 
//{
//	int a = 3;
//	int b = 5;
//	int c = a ^ b;//异或的计算规律:对应的二进制位相同,则为0,反之则为1
//	//011
//	//101
//	printf("%d\n", c);
//	return 0;
//}
//4.赋值操作符:=  +=  -=  /=  &=  ^=  |=  >>=  <<=
				//a = a+10 <=> a += 10
//5.单目操作符(有一个操作数):!-逻辑反操作  (0-假,非0-真)
			 //--负值
			 //+-正值
			 //&-取地址
			 //sizeof-操作数的类型长度(以字节为单位)
			 //~-对一个数的二进制按位取反
			 //---前置,后置--
			 //++-前置,后置++
			 //*-间接访问操作符(解引用操作符)和&是一对
			 //(类型)-强制类型转换
//#include<stdio.h>
//
//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;
//}

//#include<stdio.h>
//int main()
//{
//	int a = 10;
//	int arr[] = { 1,2,3,4,5,6 };//6*4=24
//	printf("%zd\n",sizeof(a));//4
//	printf("%zd\n", sizeof(int));//4
//	printf("%zd\n", sizeof(arr));//24,计算数组大小,单位是字节
//	printf("%zd\n", sizeof(arr) / sizeof(arr[0]));//6
//	return 0;
//}

//{
//	int a = 0;//一个字节,32比特位
//	int b = ~a;//~-按(二进制)位取反
//	//00000000000000000000000000000000
//	//11111111111111111111111111111111,0变1,1变0
//	//原码,反码,补码
//	//负数在内存中存储的时候,存储的是二进制的补码
//	//原码符号为不变,其它位按位取反得到反码,反码加一得到补码
//	printf("%d\n", b);//使用的,打印的是这个数的原码
//	return 0;
//
//}

//{
//	int a = 10;
//	//int b = a++;//后置++,a的值赋予b,給a+1
//	int b = ++a;//a=11,b=11
//	printf("a=%d,b=%d\n", a, b);
//	return 0;
//}

//{
//	int a = (int)3.14;
//	return 0;
//}

//6.关系操作符
//>   大于
//>=  大于或等于
//<   小于
//<=  小于或等于
//!=  用于测试“不相等” 不等于
//==  用于测试“相等” 等于

//7.逻辑操作符(高中数学——或且非)
//&& 逻辑与
//|| 逻辑或
//{
//	//真,非0:假,0
//	int a = 0;
//	int b = 5;
//	int c=a || b;
//	printf("c=%d\n", c);//c=1
//	return 0;
//}

//8.条件操作符(三目操作符)
//exp1 ? exp2 : exp3(如果1可以执行,走2,如果1不执行,走3)
//{
//	int a = 10;
//	int b = 20;
//	int max = 0;
//	max = (a > b ? a : b);
//	if (a > b)
//		max = a;
//	else
//		max = b;
//	printf("%d\n", max);
//	return 0;
//
//}

//9.逗号表示符
//exp1, exp2, exp3, …expN

//10.下标引用,函数调用和结构成员
//[]    ()	   .    ->
//int Add(int x, int y)
//{
//	int z = 0;
//	z = x + y;
//	return z;
//
//}
//int main()
//{
//	//int arr[10] = { 0 };
//	//arr[4];//[]——下标引用操作符
//	int a = 10;
//	int b = 20;
//	int sum=Add(a, b);//()——函数调用操作符
//	return 0;
//}

//11111111111111111111111111111111,1*2^32-1
//100000000000000000000000000000000,1*2^32
// [1(-)][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
// [0(+)][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
// 只要是整数,内存中存储的都是二进制的补码
// 正数——>原码,反码,补码统一
// 负数——>
//原码			——>	    		反码					——>					补码
// 直接按正负写出的二进制序列     原码的符号位不变,其它位按位取反得到的		反码+1	
// e.g.-2
// 10000000000000000000000000000010——原码
// 11111111111111111111111111111101——反码
// 11111111111111111111111111111110——补码
//有符号数

//常见关键字
//auto-自动  break-跳出当前循环  case-开关语句分支  
// char-字符类型变量/函数返回值类型  const-只读变量  
// continue-继续,结束当前循环,开始下一循环  default-其他  
// do-循环语句的循环体  double  else-条件语句  
// enum-枚举类型  extern-引入外部符号,变量或函数是在其它文件或本文件其它位置定义  
// float-浮点型变量或函数返回值类型  goto-无条件跳转语句  
// if-条件语句  int-整型变量或函数  long  register-寄存器变量  
// return  short  signed-有符号类型变量或函数  
// sizeof-计算数据类型或变量长度  
// static-修饰局部变量,局部变量的生命周期变长;修饰全局变量,让静态变量只能在自己所在的源文件内部使用(不可以跨服聊天) 
// struct-结构体类型  switch-用于开关语句  typedef-给数据类型取别名,类型重命名/重定义  union-共同体类型  
//unsigned-无符号类型变量或函数  void-函数无返回值或无参数,无类型指针  
//volatile-说明变量在程序执行中可被隐含地改变  while
//#include<stdio.h>
//int main()
//{
//	auto int a = 10;//局部变量—自动变量,一般省略auto(自动)
//
//	return 0;
//}

//{
//	//register int a = 10;//建议把a定义成寄存器变量
//	int a = 10;
//	a = -2;
//	//int定义的变量是有符号的
//	//signed int;
//	unsigned int num = 1;//u_int=unsigned int
//	return 0;
//}
//自定义符号名不能冲突

//void test()
//{
//	static int a = 1;//有static-2 3 4 5 6,无static-2 2 2 2 2
//	a++;
//	printf("a=%d\n",a);
//}
//int main()
//{
//	int i = 0;
//	while (i < 5)
//	{
//		test();
//		i++;
//	}
//	return 0;
//}

//#define定义常量和宏
//define定义标识符常量——
//#define MAX 100
//Max(int x, int y)
//{
//	if (x > y)
//		return x;
//	else
//		return y;
//}
//define定义宏——#define ADD(x,y) ((x)+(y))
#define MAX(X,Y) (X>Y?X:Y)
int main()
{
	//int a = max;
	int a = 10;
	int b = 20;
	//函数
	int max = Max(a, b);
	printf("max=%d\n",max);
	//宏的方式
	max = MAX(a, b);
	//max=(a>b?a:b);
	printf("max=%d",max);
	return 0;

}

//指针
//内存
//内存是电脑上特别主要的存储器,计算机中所有程序的运行都是在内存中进行的。
//所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。
//为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值