1.梦开始的地方:
#include<stdio.h>
//
//int main()
//{
// printf ("hello word");
//
// return o;
//}
//
//
// 固定格式:梦返回
//
//
//
/
2.数据类型
// 格式类型:char字符数据类型; short短整形 ;int整形; long长整型;long long更长整型;float单浮点型;double双浮点型
//
//
//
//
3.常量和变量
//常量、变量
//
//int b = 100 ;
//
//int main()
//{
// int a = 10;
// printf("a=%d\n", a); //局部变量优先于全局变量,尽量不要将全局和局部变量起名不要相同
//
// return 0;
//}
//
//计算2个整数和
//scanf 是一个输入函数(vs编译器此格式不适用应改成scanf_s)
//printf 是一个输出函数
//
//
//int main()
//{
// int num1 = 0;
// int num2 = 0;//初始化
//
// //输入两个整数求和
// scanf_s("%d %d", &num1, &num2);
//
// //求和
// int sum = num1 + num2;
//
// //输出函数
// printf("%d\n",sum);
//
// return 0;
//}
//
//
//
//
// 变量的作用域和生命周期
//1.局部变量
// 局部变量的作用域(在括号范围内有效)
//
//2.全局变量
// 全局变量的作用域(在整个程序内有效)
//(放哪个括号即在括号范围内都生效)
//
//声明来自外部的符号
//
//
//
//变量生命周期
//1.局部变量生命周期是:进入作用域生命周期开始,出作用域生命周期结束
//2.全局变量生命周期是:整个程序有效
//
//extern int a = 10;
//
//void test()
//
//{
// printf("test-->%d\n", a);
//}
//
//int main()
//{
// test();
// {
// printf("a=%d\n", a);
//
// }
// printf("a=%d\n", a);
// return 0;
//}
//
//
//常量
//1.字面常量
//2.const修饰的常变量
//3.#define定义的标识符常量
//4.枚举常量
//
//int main()
//{
//1. //30;
// //3.14;
// //'w';//字符
// //"abc";//字符串;
//2. //const int a = 10;//在c语言中,a本质是变量,用const修饰后不能直接改变,含有常量属性。
// //a = 20;
//
// //printf("%d\n", a);
//
//
//
//
// return 0;
//
//}
//3.
//# define 张飞 100
//# define SB "abcde"
//int main()
//{
// /*printf("%d\n", 张飞);
// int a = 张飞;
// printf("%d\n",张飞 );
// int("%s\n", SB);*/
// return 0;
//}
//
//
//4.枚举常量
//enum Color
//{
// //枚举常量
// RED,
// BLUE,
// GREEN,
//};
//
//enum Sex
//{
// //枚举常量
// MALE,
// FEMALE,
// SECRET,
//};
//
//int main()
//{
// char arr1[] = "abcdef";
// char arr2[] = {'a','b','c','d','e','f'};
//
// printf("%d\n", strlen(arr1));
// printf("%d\n", strlen(arr2));
//
// return 0;
//}
//
//
//字符串
//100-int
//'a',
//"abc";
//#wdlk
//char ch = "abc";
//int len = {"abc"}; 求字符串长度用string length函数;头文件:string.h
//printf("%d\n", len);
//
//eg:
//#include <string.h>
//#include <print>
//int main()
//{
// char arr1[] = "abc";
// char arr2[] = { 'a','b','c','\0'};
//
// printf("%d\n", strlen(arr1));
// printf("%d\n", strlen(arr2));
//
// printf("%s\n", arr1);
// printf("%s\n", arr2);
//
//
// return 0;
//
//}
//
4.转义字符和打印所需%形式
//%d - 打印有符号整形含正负
//%s - 打印字符串
//%c - 打印字符
//%f - 打印float类型数据
//%lf - 打印double类型数据
//%p - 打印地址
//%u - 打印无符号整形
//
//转义字符——\0等于停止; \等于取消 \\等于取消(\)双重否定表肯定
//1. \? 在连续书写多问号时使用,防止被解析成散字母词;
//2. \' 用于表示字符常量
//3. \"
//4. \t 水平制表符
//5. \a 警告制符,蜂鸣
//6. \n 换行符
//7. \r 回车
//8. \ddd ddd表示1-3个八进制的数字 如:\130
//9. \xdd dd表示两个16进制的数字 如: \x60
//10.\b退格符 (了解
//11.\f进纸符 ||
//12.\v垂直制表符 即可 )
//
// 进制转换 如:八进制转十进制130 = 0x8零次方 + 3x8一次方 + 1x8的二次方 = 88
// 十六进制转十进制 60 = 0x16零次方 + 6x16一次方 = 96
//eg:
//int main()
//{
// printf("%s\n","(are you ok\? \? \?)");有的电脑多个问号编译器识别不出
// printf("%c",'\'');
// printf("\"");
// printf("abcd\\0ef");
// printf("c.\\test.\\8-16");
// printf("\a");
// printf("abcd\nef");
// printf("\130"); 打印出来为X 结果转换为十进制后参照ASCII码表
// printf("\x60");
//
// printf("%d\n", strlen("qwer t"));
// printf("%d\n", strlen("c:\test\628\test.c"));
//
//return 0;
//}
//
5.初识函数
//函数:
//int ADD(int x, int y)
//{
// return (x + y);
//}
//
//
//
//int main()
//{
// int n1 = 0;
// int n2 = 0;
//
//
// //输入
// scanf_s("%d %d", &n1, &n2);
//
// //求和
// //int sum = n1 + n2;
// int sum = ADD(n1, n2);
//
// //输出
// printf("%d\n", sum);
//
// return 0;
//}
//
//
//
6.初识循环
//选择语句与循环语句:
//c语言实现选择:
//1.if else
//2.switch
//
//eg;
//int main()
//{
// int input = 0;
//
// printf("要好好学习么?\n");
// printf("请选择(1/0)");
// scanf_s("%d", &input);
//
// if (input == 1)
// {
// printf("获得大厂office\n");
//
// }
//
// else
// {
// printf("错失良机\n");
// }
//
// return 0;
//}
//
//循环语句
//1.while语句
//2.for语句
//3.do......while语句
//eg:
//int main()
//{
// printf("开始好好学习\n");
// int line = 0;
//
// while (line < 20000)
// {
// printf("写代码%d\n",line);
// line++;
// }
//
// if (line >= 20000)
// {
// printf("获得大厂office\n");
// }
//
// else
// {
// printf("还得练练\n");
// }
//
// return 0;
//}
//
//
//int main()
//{
// int i = 0;
// int b = 0;
// int arr[] = { 0,1,2,3,4,5,6,7,8,9 };
// float fl[] = { 3.14,6.6,8.8};
//
// while (i < 10)
// {
// printf("%d\n", arr[i]);
// i++;
// }
//
// while (b < 3)
// {
// printf("%lf\n",fl[b]);
// b++;
// }
// return 0;
//}
//
//
7.操作符概念及简单运用
//操作符
//1.算数操作符
//+, -, *(乘号), /(除号), %(模)
//int main()
//{
// int a = 7 / 2;//若打印小数则除号两端有一处有浮点数即可;
// float A = 7.0 / 2;
// int b = 7 % 2;//取模两端必须是整数;
// printf("%d\n", a);
// printf("%.3f\n", A);//想要打印几个小数就在%f之间加(点数字);
// printf("%d\n", b);
//}
//
//2.赋值操作符
//=, +=, -=, *=, /=, &=, <<=, >>=
//int main()
//{
// int a = 0;//初始化赋什么值都可以;
// a = 20;//赋值;
// //a = a + 3;
// a += 3;
// printf("%d\n", a);
//
// int a = 0;
// a = 20;
// //a = a - 3;
// a -= 3;
// printf("%d\n", a);
// return 0;
//}
//
//3.单目操作符
//!表示相反的意思
//int main()
//{
// int a = 0;//(0为假);
// int b = !0;//(!表示相反即为真)
//
// if (b = 0)
// {
// printf("hehe");
// }
//
// else
// {
// printf("sb");
// }
//
// return 0;
//}
//
//+加号
//
//-减号
//int main()
//{
// int a = -10;
// int b = -a;
// printf("%d\n", b);
// return 0;
//}
//
//&取地址符(二进制有关);
//
//强制类型转换(类型);类型要放入括号
//int main()
//{
// int a = (int)3.14;//int 只能打印整形
// //3.14表示double类型的浮点数
// //用()强制转换类型
// printf("%d\n",a);
// return 0;
//}
//
//sizeof表示字节长度的字符
//int main()
//{
// int a = 0;
// int arr[10] = { 0 };//arr(数组)里面有十个元素每个元素有占4个字节,故共计40个字节;
// printf("%d\n", sizeof a);
// printf("%d\n", sizeof (arr));
//
// int b = sizeof arr / sizeof a;
// printf("%d\n", b);
//
// return 0;
//}
//
//++分前置和后置
//int main()
//{
// int a = 10;
// //int b = ++a;//前置++:先加一后使用;故结果为a = 11,后赋给b,故b = 11
// //int b = a++;//后置++:先使用后加一;
// printf("%d\n", a);
// printf("%d\n", b);
// return 0;
//}
//
//--同理上例;
//
//4.逻辑操作符
// &&--并且
// ||--或者
//int main()
//{
// int a = 10;//非零即为真
// int b = 20;
//
// //if(a && b)//并且即同为真才是真;一假即假;
// //if(a || b)//或者即同为假才是假;一真即真;
// {
// printf("hehe\n");
// }
//
// return 0;
//}
//
//5.关系操作符
// < 小于;
// <= 小于或等于;
// > 大于;
// >= 大于或等于;
// == 用于测试相等
// != 用于测试不相等
//int main()
//{
// int a = 10;
// //if (a == 3)//测试结果不符,故打印不出结果
// if (a != 3)
// {
// printf("hehe\n");
// }
// return 0;
//}
//
//6.条件操作符
// exp ? exp : exp
//int main()
//{
// int a = 10;
// int b = 20;
// int c = 0;
// int d = (a < b ? a : b);//如果a小于b为真,则打印结果一,若为假则打印结果二,
// printf("%d\n", d);
// return 0;
//}
//
//7.逗号表达式
// exp1, exp2, exp3, expN 特点;从左到右依次计算,表达式的结果为最后一个表达式的结果;
//int main()
//{
// int a = 10;
// int b = 20;
// int c = 0;
// int d = (c = a + 3, a = b - 4, c - 9);//d的结果为c-9
// //逗号表达式结果为最后的那个表达式的结果即expN;
// printf("%d\n", d);
//
// return 0;
//}
//
//8.下标引用操作符 []
//int main()
//{
// int arr[10] = { 1,2,3,4,5,6,7,8,9 };
// arr[3] = 20;
//
// return 0;
//}
//
//9.函数调用操作符 ()
//ADD(int x, int y)
//{
// return x + y;
//}
//
//int main()
//{
// int sum = ADD(3, 4);
// printf("%d\n", sum);
// return 0;
//}
//
8.变量(标识符)命名规则
//变量命名注意要点:
//1.变量名不能是关键字
//2.变量名必须有意义
//3.变量名必须是数字、字母、下划线组成,不能是特殊字符,开头不能是数字
//
9.定义常量
//定义常量和宏:
// #define定义常量
// ADD宏
//
//
//
//
10.初识指针
//指针:内存单元的编号,说白了就是地址
//指针变量:类似于变量
//&取地址操作符
//
//
//int main()
//{
// int a = 10;//向内存申请4个字节,存储10
// //&取地址操作符
// int* p = &a;//int表示指向p是int类型,*说明p是指针变量,
// *p = 20;//*解引用操作符,意思就是通过p中存放的地址找到p所指向的对象
// //*p就是p所指向的对象;
// //&和*互相抵消
// printf("%d\n", a);
//
// return 0;
//}
//
//
//指针变量大小
//int main()
//{
// //不管是什么类型指针,都是在创建指针变量
// //指针变量是用来存放地址的
// //指针变量大小取决于存放一个地址所需的空间
//
//
// printf("%zd\n", sizeof(char*));
// printf("%zd\n", sizeof(int*));
// printf("%zd\n", sizeof(float *));
// printf("%zd\n", sizeof (double*));
//
// return 0;
//}
//
11.初识结构体
//结构体;把单一类型组合在一起
//eg;人;姓名+性别+年龄+联系方式
//
//
//姓名,性别,年龄,联系方式
//struct stu
//{//成员
// char name[20];
// char sex[10];
// int age;
// char tel[20];
//
//};
//
//int main()
//{// 结构体对象.成员名 eg:s.name
// struct stu s = {"zhangsan","man",20,"1008611" };
// printf("%s, %s, %d, %s\n", s.name, s.sex, s.age, s.tel);
//
// return 0;
//}
//
//struct stu
//{
// char name[20];
// int age;
// char sex[20];
// char tel[20];
//
//};
//
//void print(struct stu* ps)//传参;
//{
// printf("%s %d %s %s\n",(*ps).name, (*ps).age, (*ps).sex, (*ps).tel );//()强制类型转换
// printf("%s %d %s %s\n", ps->name, ps->age, ps->sex, ps->tel);//结构体指针变量->成员名 eg:ps->name
//}
//
//
//
//int main()
//{
// struct stu s = { "zhangsan", 20, "man", "10086" };
//
// printf("%s %d %s %s\n",s.name, s.age, s.sex, s.tel); //结构体对象.成员名 eg:s.name
//
// print(&s);//取地址
//
// return 0;
//}
//
//
//
12.零散知识点补充
//零散知识点补充:
//若要控制打印几位小数加 .数字
// 若要控制取几位数即在%后边加数字
//eg:%.2f
//int main()
//{
// float f = 3.14f;
// printf("%.1f\n", f);//实际打印一位小数
// return 0;
//
//}
//
//static修饰的变量经循环后仍为循环前的值
//eg:
//int main()
//{
// static int b = 3;
//
// return 0;
//}
//
//