随着一段时间的学习与了解,我基本打算分两个阶段完成c语言的学习:
阶段一是先学习C语言的框架,大致过一遍其涉及到的知识点,现在我还在这个阶段学习,我已大致学习了变量常量,选择语句,循环语句,操作符,函数等内容,并且尝试自己完成一些简单的编码题。
阶段二是深入每个板块理解透,也就是深入学习,之后再通过刷题,阅读进阶书籍等方式深入吧,相信到时我也会有自己的打算。
另外,我发现将每个知识点通过编程的形式记录下来,既有利于我复习吸收知识点,又有利于我后续复习回忆,是一个很不错的习惯。
初学c语言的读者也可以尝试我这样的学习思路。
刚刚入门,如果有学习,创作上的问题也欢迎大家多多批评指正。
以下是我的学习笔记
#define _CRT_SECURE_NO_WARNINGS
//#include<stdio.h>//第一次编程
//int main()
//{
// printf("草泥马\n");
// printf("草泥马\n");
// return 0;
//}
//int main()//数据类型
//{
// int age = 20;
// double y = 66.6;
// return 0;i
//}
//变量-常量
//#include<stdio.h>
//int L = 666;//全局变量
//int main()
//{
// int K=667;//局部变量
// printf("K=%d\n",K);
// return 0;
//}
//求和代码:
#include<stdio.h>
//int main()
//{
// int num1=0;
// int num2 = 0;//定义数值
// scanf_s("%d %d", &num1,&num2);//输入数 写scanf第一行加#define _CRT_SECURE_NO_WARNINGS (不加出39行提示)
// int sum = num1 + num2;//计算 scanf_s是vs编译器自己提供的函数,不是标准c的函数
// printf("%d\n", sum);//输出数
// return 0;
//}
//错误 C4996 'scanf': This function or variable may be unsafe.Consider using scanf_s instead.To disable deprecation, use _CRT_SECURE_NO_WARNINGS.See online help for details.
//extern int a;
//int main()
//{
//
// printf("a=%d\n", a); // 变量的作用范围
// {
// printf("a=%d\n", a);
// }
// return 0;
//}
//1.字面常量
//int main()
//{
// 20;
// 2.1562;
// "abv";
// 'a';
// return 0;
//}
//int main()
//{
// int a= 100;
// a = 1000;// 改变变量a的尝试
// printf("%d", a);
// return 0;
//}
//2.const修饰的常变量
//int main()
//{
// const int a = 1000; //跑不动说明 const修饰为常变量
// a = 50;//(const 修饰本质为变量,但不能被修改,有常量的属性)
// printf("%d", a);
// return 0;
//}
//int main()
//{
// const int m = 6;
//
// int arr[6] = { 678 };//证明const...不是常变量,结果:报错
// printf("%d\n", arr);
// return 0;
//}
//3.define定义的标识符函数
//#define A 100
//#define B "cnm"
//int main()
//{
// printf("%s\n", B);
// printf("%d\n", A); //如果大括号内加入"int a=99;",则报错,说明define是常量(下方为验证3程序)
// int c = a;
// printf("%d",c);
// return 0;
//}
//#define A 100
//int main()
//{
// int arr[A] = { 0 };//证明define...是常量
// return 0;
//}
//4.枚举常量
//enum Color
//{
// RED,
// YELLOW,
// BLUE //偏拓展
//};
//int main()
//{
// int num = 11;
// enum Color x = RED;
// printf("%d", x);
// return 0;
//}
#include <string.h>//用strlen函数前需加
//int main()
//{
// char who = 'x';//字符
// printf("%c\n", who);
// char arr1[] = "cnmd";//4个字母需5个元素的空间(有一个结束标志\0)
// char arr2[] = { 'c','n','m','d'};//主动放,4个字母需4个元素的空间(无上标志)
// printf("%s\n", arr1);
// printf("%s\n", arr2);
// int len1 = strlen(arr1); //用来数字符串个数————用法一
// int len2 = strlen("cnm");
// int len3 = strlen(arr2);
// printf("%d\n", len1);
// printf("%d\n", len2);
// printf("%d\n", len3);
// printf("%d\n", strlen(arr1));//————用法二
// return 0;
//}
//int main()
//{
// printf("%s\n","(are you fine\??)");//"\n"结果下有空行,是 "转义字符". eg:"\0"等 手机收藏完整的
// printf("%d\n", 123);//奇怪的用法
// printf("%c\n",'\"');
// printf("\'\n");
// printf("123456\n");
// printf("abc\\0\nd\ve\tfg");
// printf("\a\a\a\a\a\a\a\a\a");
// printf("%c\n",'\132');
// printf("%c\n", '\x63');
// printf("%d\n", strlen("abc\n v"));
// return 0;
//}
//int main()
//{
// /*
// int a = 78;
// int b = 89;
// return 0;————1.这是c语言早期注释(不支持嵌套注释)
// */
// //————2. 这是c++的注释风格
// int a = 666;
//}
//int main()
//{
// int a = 0;
// printf("欢迎来到茅坑!\n");
// printf("你是来拉屎的吗?\n(是 输入1,否 输入0)\n");//——选择语句
// scanf("%d", &a);
// if (a == 1)
// {
// printf("别拉了,给爷吃!\n");
// }
// else
// {
// printf("请边吃边拉~~\n");
// }
// return 0;
//}
//int main()
//{
// int a = 0;
// printf("来到茅坑\n");
// while (a < 100000)
// {
// printf("吃屎...:%d\n",a);
// a++;
// }
// if (a >= 100000)
// {
// printf("称霸屎界!!!!!!!\n");
// }
// else
// {
// printf("别灰心,你已超越老八。");
// }
// return 0;
//}
//int main()
//{
// int a = 0;
// int b = 0;
// scanf("%d %d",& a,& b);//————方法一
// int c = a + b;
// printf("%d\n", c);
// return 0;
//}
//int Add(int a1, int b1)//Add是函数名 //括号内是函数参数 //int是返回类型
//{
// //int x1 = a1 + b1;//写法1
// int x1 = 0;//写法2
// x1 = a1 + b1;//——————中间这一堆是函数体
// return x1;
//}
//————————————————————————方法二,定义了一个函数
//int Add(int a1, int b1)
//{
// return (a1 + b1);//函数的简便写法¥¥$$
//}
//
//int main()
//{
// int a = 0;
// int b = 0;
// scanf("%d %d", &a, &b);
// int x = Add(a, b);
// printf("%d\n", x);
// int c = 456;
// int d = 6461;
// printf("%d\n", Add(c, d));
// return 0;
//}
//int main()
//{
// int arr[10] = { 10,11,12,12,13,16,16,17,18,19 };
// //数组中每个数有下标,从0开始,如上下标依次为0 1 2 3 4 5 6 7 8 9
// printf("%d\n", arr[2]);//由下标代指数组中的某个数
// int a = 0;
// while (a < 10)
// {
// printf("%d\n", arr[a]);
// a++;
// }
// return 0;
//}
//int main()
//{
// printf(" **\n");
// printf(" **\n");
// printf("************\n");
// printf("************\n");//作业题
// printf(" * *\n");
// printf(" * *\n");
// return 0;
//}
//int main()
//{
// printf("Name Age Gender\n");
// printf("---------------------\n");//作业题
// printf("Jack 18 man\n");
// return 0;
//}
//int main()
//{
// int a = 40;
// int c = 212;
// int b = (-8 + 22) * a - 10 + c / 2;
// printf("%d\n", b);
// return 0;
//}
//int main()
//{
// int arr[] = { 1,2,3,4 };
// char arr1[] = "vgvyb";
// int arr2[] = { 10 };
// printf("%d\n", arr2);
// char arr3[7] = { 'c','n','m' };//只有[]内比3大时,打出来是3,因为多出来的被默认初始化为零了,这被称为不完全初始化
// printf("%d\n", strlen(arr3));
// return 0;
//}
//end of file 文件结束标志
//EOF//选中,右击鼠标,速览定义,发现本质是-1
//0指数字零,ASCII是0
//'0'指字符零,ASCII是0,二者本质上没区别
//int main()
//{
// char arr[] = "123456789";//证明一个数字是一个字符
// printf("%s\n", arr);
// printf("%d\n", strlen(arr));
// //char arr1 = { '1','2','3' };//这样写不行
// return 0;
//}
//int main()
//{
// int arr1[10] = { 1 };
// int arr2[] = { 1,2,3 };//-------C99标准前
// int a = 10;
// int arr3[a];//C99标准后理论上可以这么写,但不能初始化(这里因为编译器不支持,所以不行)
// return 0;
//}
//int main()//作业题 (我的写法)
//{
// int a = 0;
// int b = 0;
// scanf("%d %d", &a,&b);
// if (a >= b)
// {
// printf("%d\n", a);
// }
// else
// {
// printf("%d\n", b);
// }
// return 0;
//}
//int Max(int x, int y)//函数写法
//{
// if (x > y)
// return x;
// else
// return y;
//}
//int main()
//{
// int a = 0;
// int b = 0;
// scanf("%d %d", &a, &b);
// int c=Max(a, b);
// printf("%d\n", c);
// return 0;
//}
//int main()//作业题,我自己写的,有一点问题
//{
// int a = 0;
// scanf("%d", &a);
// while (a < 0)
// {
// int y = -1;
// printf("%d", y);
// }
// if (a ==0)
// {
// int y = 0;
// printf("%d", y);
// }
// else
// {
// int y = 1;
// printf("%d", y);
// }
// return 0;
//}
//int main()//正确的写法
//{
// //输入
// int x = 0;
// int y = 0;
// scanf("%d", &x);
// //计算
// if (x > 0)
// y = 1;
// else if (x == 0)
// y = 0;
// else
// y = -1;
// //输出
// printf("%d\n", y);
// return 0;
//}
//int add(int a, int b)//自己又写的函数方法,应该是正确的
//{
// if (a > 0)
// return b = 1;
// else if (a == 0)
// return b = 0;
// else
// return b = -1;
//}
//int main()
//{
// int x = 0;
// int y = 0;
// scanf("%d", &x );
// int z = add(x, y);
// printf("%d", z);
// return 0;
//}
//int main()
//{
// char arr[] = "cnmd";
// printf("%s", arr);//数组部分小尝试
// return 0;
//}
//int main()//——————————————————————————————————————————操作符
//{
// int a = 9 / 2;//表示整数部分
// int b = 9 % 2;//表示余数
// float c = 9 / 2.0;//有浮点数时,可算出正确结果
// printf("%d\n", a);
// printf("%d\n", b);
// printf("%.2f\n", c);//表示保留两位小数
// return 0;
//}
//int main()
//{
// int a = 10;//单目操作符有一个操作数,双目有两个
// a = 11;//eg: sizeof是操作符,而且是单目操作符
// a = a + 1;
// a += 12;//430行与431行本质相等,后者是前者使用 操作符 的写法
// printf("%d\n", a);
// return 0;
//}
//C语言中,0表示假,非零表示真
//int main()
//{
// int a = 0;
// if (!a)//!a为真时,if内的代码就跑起来
// {
// printf("cnmd");
// }
// return 0;
//}
//int main()
//{
// int a = 10;
// printf("%d\n", sizeof a);//一个整型4个字节
// printf("%d\n", sizeof (int));//sizeof应该是用来计算字节数的(指内存容量)
// return 0;//strlen是用来计算字符串长度(字符数)的
//}
//int main()
//{
// int a = 10;
// int b = a++;//后置++,先使用,后加加
// //上式意思为 b=10后,a+1
// printf("%d\n", a);//11
// printf("%d\n", b);//10
// return 0;//可推得,前置++为先加加,后使用,结果均为11
//}//--同理
//int main()
//{
// int a = (int)3.141592653589793;//(类型)为强制转化类型
// printf("%d\n", a);
// return 0;
//}
//int main()
//{
// int a = 10;
// int b = 0;
// if (a && b)//“&&”表示逻辑“和”,二者必须都为真
// {
// printf("cnmd");//“||”表示逻辑“或”,二者有一个为真就行
// }
// return 0;
//}
//int main()
//{
// int a = 156;
// int b = 789;
// int c = a<b ? a : b;// “ a ? b : c ” 如果a正确,输出结果是b;如果a错误,输出结果是c。
// printf("%d\n", c);
// int x = 1;
// int y = 2;
// int z = (x=x + 1, y=x + y, x=x + 1);
// printf("%d\n", z);
// return 0;
//}
//逗号表达式就是由逗号隔开的一组表达式(不限个数)
//从左向右依次计算,最后一个表达式结果就是总的表达式的结果
//int main()
//{
// int arr[] = { 1,2,3,4,5,6,7,8,9,0 };
// arr[2] = 1;//也可以 int a=2; arr[a]=1;访问元素的时候可以这么搞
// printf("%d\n", arr[2]);
// return 0;
//}
//int Add(int x, int y)
//{
// return (x + y);
//}
//int main()
//{
// int a = Add(1, 3);//这里的()就是函数调用操作符,Add,2,3都是()的操作数
// return 0;
//}
//——————————————————————————————————————————以上为操作符的内容