c语言学习两个月心得章c数据类型
本章内容有常量和变量,整型、实型和字符型变量的定义和赋值,赋值运算符=,计算字节数运算符sizeof,运算符的优先级,运算符的结合性圆括号,标识符命名。
c程序处理的数据由常量和变量两种基本形式。变量和常量的区别在于:在程序执行的过程中,常量的值保持不变,变量的值是可以改变。c语言的基本数据类型有整型、实型、字符型和枚举型等。变量必须先定义,后使用。标注c规定所有变量必须在第一条可执行语句之前定义。赋值运算符的左值只能是变量,不是常:量或表达式。sizeof()是c的关键字不是函数名。圆括号,将表达式括起来,可避免因误用和混淆运算符的优先级和结合性而导致的程序错误。不允许使用C标识符命名。
本章常见错误小结a:变量未定义就使用
b:忽视了变量区分大小写,使得定义的变量和使用的变量不同名
int sum;SUM=0;
c:可执行语句之后定义变量printf("INPUT n");int n;
d:在定 义变量时,用于变量初始化的常量类型与定义的变量类型不一致
int n=3.9;
e:在定义变量时,对于多个变量进行连续赋值
int n=m=0;
第三章简单的算数运算和表达式主要内容:1.算数运算符
算术运算符算数运算符的优先级高于赋值运算符。算数运算符的结合性是左结合,赋值运算符的结合性是右结和。2.增一和减一运算符
增一和减1运算符后缀形式与前缀形式的区别前者是使用变量的值然后再增一(减一),后者是先增一(减- -),然后再使用变量的值。
3.强制类型转换运算符
将表达式的值强制转化为目标类型4.自动类型转换
在不同类型数据之间会发生自动类型转换。1将取值范围小的转换为取值范围大的类型是安全(的,而反之则是不安全的。
5. 整数除法
两个整数相除的商仍为整数。
若要得到浮点数商,必须使用浮点数除法,豆者将其中一个操作数强制转为浮点数。7.宏常量
宏替换是简单的字符串替换,不进行语法检
查
8.const常量
可以用于声明具有某种类型的常量。常见错误
a:使用了非法的标识符
b:将乘法运算符省略或写成x4ac或者4xaxc
C:表达式为一线性形式写出,,即分子、 分母、指数下标等未写在同一行上
d:使用方括号0和以及花括号}限制表达式1.0/2.0+[a-b]{a/b}
e:数学函数运算时未将参数用圆括号括起,, 且且未注意定义域要求和参数的单位
f:对浮点数进行求余运算3.5%5
g: 强制转换表达式中类型名为用圆括号括起来
float(m)/2
h:误以为(float)这种强制运算可以改变变量m
1:误以为用双引号括起来字符串中与宏名相同的字符也被宏替换,误以为宏替换时可以做语法检查
k:将宏定义当做算数运算符使用#define pi=3.14159
1:对一个算数算数表达式使用增一-或者减一-运
算
(a+b)++典型例题1.强制转换
#include<stdio.h>int main()
int n=256float f=3.6;double d=2.5;
f=n;d=f;
printf("n=%d\n",n);printf("f=%f\n",f);printf("'d=%f\n' ,d);
程序的运行结果为n=3
f=3.000000;d=3,000000;
#include<stdio.h>#define pi 3.14159int main()
double r;
printf("INPUT r:";scanf("%1f",&r);
printf("circumstance=%f\n"2*pi*r;printf("area=%f\n",pi*r*r;
第四章键盘输入和屏幕输出主要内容1. 字符常量
用单引号括起来的一个字符
以反斜线(\)开头、有特定含义的字符序
3.字符输出函数putchar()向屏幕输出字符
4.字符输入函数getchar()从键盘输入字符
5.数据的格式化输出函数printf()
以各种格式进行任:意类型的数据的屏幕输出操作
6.数据的格式化输.入函数scanf()
以各种格式进行任意类型数据的键盘输入操作
错误实例
1.忘记给scanf()中的变量加上取地址运算
scanf("%d",a);
2.用户从键盘输入的数据格式与scanf()中格式控制字符串要求的格式不一致。例如,相邻数据项之间应该用逗号分隔,但是用户没有输入逗号,或者不应该用逗号,分隔用户输入了逗号scanf("%d%d",&a,&b);用户输入2,3
3.将printf0误写为print()或者Printf(。于c编译器只是在目标程序中为库函数调用留出空间,并不能识别函数名中拼写错误,更不知道库函数里在哪里,寻找库函数并将其插入到目标程序中是链接程序负责的工作,函数名拼写错误只能在链接时发现
print("INPUT a:");printf(INPUT a:";
例
#include<stdio.h>int main()
char ch;
printf("press a key and then pressEnter:");
ch=getchar();ch=ch+32;
printf("%c, %d\n",ch,ch);}
第五章选择控制结构主要内容
用于单分支控制的条件语句#include<stdio.h>int main()
{ int a,b,max;
print("lnput a,:";scanf("%d,%d",&a,&b);if(a>b) max =a;if(a<=b) max= b;
printf("max = %d\n",max); }用于双分支控制的条件语句#include <stdio.h>int main ()
{ int a,b,max;
printf("Ilnput a,b:");scanf("%d,%d",&a,&b);if(a.b) max =a;else max= b;
printf("max = %d\n",max);
用于多分支控制的条件语句if (表达式)语句1else if(表达式2)语句2.else if (表达式m)语句melse语句m+1
用于多路选择的switch语句switch (表达式)case 常量1:
可执行语句序列1
case常量2:
可执行语句序列2,.. case 吊重n:
可执行语句序列ndefault:
可执行语句序列
n+1}
我的感悟:一定要先明白c语言的表达方式,遵守c语言的规则,不乱写,有理有据,多加练习。