刚开始学C语言的时候,很迷茫,有点摸不着头脑。可是在学习之后,我觉得编程是很有趣的-件事。虽然学好C语言不容易,但是我还是决定去完成这件不容易的事。
良好的编程习惯是学好C语言的重要因素,只有勤动手,多动脑才能学好C语言,光说不练是不行的。只有通过,上机操作才能验证自己程序的正确性。执行程序,不要害怕错误,其实,我觉得错误是好的,知道了自己所学知识的不足,并根据提示改正程序中发生的错误,一种成就感油然而生,觉得自己的付出都是值得的。
在学习的时候,不会的一定要问明白,可以求助于老师,同学,不要自己一个人钻牛角尖,浪费时间还不见得能学到东西。上课的时候一定要认真听,老师讲的肯定是最重要的,错过了就是一大笔损失,认真听讲才可以提高学习效率。应该做到: 1、上课认真听讲积极思考, 提高上课效率。老师上课讲述的都是课程的重点和难点,听好课程可以达到"事半功倍"的目的。2、课后复习。把每天的上课内容多复习,最好能做到熟练掌握。3、主动练习,多多实践,提高动手能力。通过实践来验证所学的理论,通过查找错误来巩固概念,通过提高上机能力来促进理论学习,开阔编程思路,提高反映速度,提高分析问题解决问题的能力,锻炼心理素质,提高心理承受能力。
我觉得在编程之前,可以先把自己的想法写在纸上,如果是简单一点的程序不需要这样,如果程序比较复杂,就写下来,这样可以让思路更加清晰。输入程序时一定要认真, 不要把“,”与“;”混淆。用“switch”要记得“break”。“{}”“ ()”一定要一起打,防止因为括号的小问题出现错误。“=”与“==”的区别要清楚等等。在编程时除了要认真谨慎之外,更重要的是掌握基本的知识,还要注意一些细小的琐碎的知识,如C语言规定的标识符,大小写字母间的ASCII代码值相差32,强制类型转换符,自增自减运算符,符合运算符,逗号运算符等。
学习C语言需要的是坚持下去的毅力,认真对待每次错误的耐心,还有孜孜不倦的努力。拥有一个良好的心态,相信自己,你就会发现学好C语言不再困难!
下面是一些c基础的知识点:
标识符命名规范:在C语言中无论给谁起名字都要遵循这个命名规范
1、 数字、字母、下划线组成
2、 不能以数字开头
3、 不能用关键字起名,虽然 int float char return 预处理执行不是关键字,但是我们一般也不用,容易混淆
4 、严格区分大小写
5 、不要使用拼音,因为拼音难以理解
int 整型
float 浮点型(小数)
char 字符型
%d 整数
%o 八进制
%x 十六进制
%f 小数
%c 字符
算术运算符
+ - * / %(模除,取余数)
/ 整数相除得整数,除不开的部分不要。小数相除得小数,整数和小数相除得小数。
% 两个操作数必须是整除
关系运算符,大小关系
> < >= <= == !=
= 赋值
== 比较
赋值运算符的运算结果0假,非0数都是真
逻辑运算符
&& 逻辑与 两个操作数有一个为假结果就是假
|| 逻辑或 两个操作数有一个为真结果就是真
! 逻辑非 真的假,假的真
逻辑运算符的结果是0假 1真
赋值运算符
= += -= /= *= %=
a += 1 等价于 a = a+1
短路特性
&& ||
&& 左边表达式为假,右边的表达式不执行。
|| 左边表达式为真,右边的表达式不执行。
一维数组
int grade[10];
grade:数组名
[10]: 数组里有10个变量,我们叫数组里的变量为数组的元素。定义数组时数组的元素个数只能用常量表示。
int: 数组里面的变量都是int类型。
给数组赋值必须是给每个元素单独赋值
完全初始化: int a[10] = {1,2,3,4,5,6,7,8,9,10};//初始化使用的数据个数组的元素个数一致。
a[0]=1 a[1]=2 a[2]=3 a[3]=4 a[4]=5
a[5]=6 a[6]=7 a[7]=8 a[8]=9 a[9]=10
部分初始化: int a[10] = {1,2}; //初始化使用的数据小于数组的元素个数。其余的元素默认补0。
a[0]=1 a[1]=2 a[2]=0 a[3]=0 a[4]=0
a[5]=0 a[6]=0 a[7]=0 a[8]=0 a[9]=0
默认初始化: int array[] = {1,2,3,4,5,0,0,0}; //根据初始化使用的数据个数,决定数组的元素个数。
二维数组
数组元素是一维数组的数组,称为二维数组。
完全初始化
int a[2][3] = {{1,2,3},{4,5,6}};
int a[2][3] = {1,2,3,4,5,6};
部分初始化
int a[2][3] = {1,2,3};
int a[2][3] = {{1},{2,3};
默认初始化
int a[][3] = {1,2,3,4};//a[0]{1,2,3} a[1]{4,0,0}
int a[][3] = {{1},{2},{3,4}};
二维数组常见用法之一:表示平面直角坐标系
1。 0 0元素是坐标原点
2。X轴向右递增,Y轴向下递增
3。第一个角标表示Y轴,第二个角标表示X轴
字符串处理函数
#include <string.h>
strlen() 只有字符串长度不算'\0'
strcpy() 将参数2的字符串拷贝到参数1的数组里,我们得保证参数1 的数组够长
strcat() 将参数2的字符串拼接到参数1的后面,我们得保证参数1的数组够长
strcmp() 比较字符串,比较的是第一个不相等的字符的ascii码值,返回值不是表示真假
全局变量和局部变量
区别
对于全局变量,如果没有进行初始化操作。那么这个变量默认为 0。
生命周期:全局变量从程序开始,到程序结束为止。 (可以先忽略)
- 局部变量从所在的语句块开始执行创建,语句块执行完删除。
作用域: 全局变量程序的任何地方都可以用。
- 局部变量只能在定义的{}里使用。
全局变量不能重名。
位运算
目标是二进制位
<< 高位溢出,低位补0
>> 有符号数,低位溢出,高位整数补0,负数补1,无符号数,低位溢出,高位补0
~ 所有的位0变1 1变0
& 对应的位有一个为0就是0,写0,读值
| 对应的位有一个为1就是1,写1
^ 相同得0,不同得1,取反
宏定义
#define 宏名 宏值
在预处理阶段使用宏值替换宏名
宏名一般大写
宏定义的常见用法之一是给常量起名字,增强程序可读性,以及可维护性。
宏定义是无脑替,不做任何安全检测,写什么替什么。