C语言——读书心得2
2015-03-20 09:46
246 查看
1.强制类型转换只是在转换时候产生一个临时值赋给要接受的变量,之后就自动销毁了,不会改变原有的变量
2.cout<<sizeof(' ')<<"\n"; //输出1
count<<sizeof('aaa')<<“\n”//输出4
cout<<sizeof("")<<"\n";//输出1 只是\0
char a;//这里是一字节
printf("%d\n",sizeof(' ')); //4
printf("%d\n",sizeof('a')); //4 C语言为了空间拓展容纳更多字符 规定字符常量为4字节,字符变量一个字节
printf("%d\n",sizeof('add')); //4
printf("%d\n",sizeof("")); //1只是\0
3.全局变量可以定义在可被多个.C文件包含的头文件中
在不同的C文件中以static形式来声明同名全局变量。可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错
4.float x 与“零值”比较的if语句为 if(fabs(x)<0.00001f)
或者 if(x>-0.0000001 && x<0.0000001)
folat类型的还有double类型的,这些小数类型在趋近于0的时候直接等于0的可能性很小,一般都是无限趋近于0.因此不能用==来判断。应该用|x-0|<err来判断,这里|x-0|表示绝对值,err表示限定误差
用程序表示就是fabs(x)<0.00001f
10.void main()
{
char s1[]="ged";
char s2[]="i";
char s3[20];
sprintf(s3,"%s%s%c",s1,s2,'t');//可以实现两个字符串连接
system(s3);//打开文本编辑器
}
5.printf("%f\n",1);//0.000000
printf("%d\n",1.0);//0
printf 不管你是什么类型 只要不能按照指定的类型解析 就会返回0 表示解析失败 不会进行类型转换
底下这样进行强制类型转换就可以了
printf("%f\n",(float)1);
printf("%d\n",(int)1.0);
printf("%d\n",1/2); //向零靠齐取舍,进行隐士类型转换 0
printf("%f\n",3/2);//结果是 0.000000 商 1 按照 Printf 所设置的浮点形式 解析失败 返回0
printf("%f\n",3/2.0); //结果是 1.500000
#include<stdio.h>
#include<stdlib.h>
int main()
{
char ch='A';
int num = 1;
double d=1.0;
float f=1.0;
printf("%d\n",sizeof(ch+num)); //4
printf("%d\n",sizeof(ch+d));//8
printf("%d\n",sizeof(d+num));//8
printf("%d\n",sizeof(ch+f));//4
printf("%d\n",sizeof(f+num));//4
return 0;
} //加减乘除是可进行隐士类型转换,赋值号可以自动进行类型转换
int x=3.6; //赋值号 把3.6转换为3,大数准换小数会失精度
printf("%c\n",(char)65.0);//强转 输出 Arprintf("%c\n",65.0); // 解析失败不输出
6. 库函数自带的数制转换函数
#include<stdio.h>
#include<stdlib.h>
int
main()
{
int num;
printf("请输入整数:");
scanf("%d",&num);
char str[32];
_itoa(num,str,2);//第一个参数是要转换的数据,第二个参数是要保存的字符串,第四个是要转换的进制数
//itoa(num,str,2);
printf("%s\n",str);
itoa(num,str,16);
printf("%s\n",str);
itoa(num,str,16);
printf("%s\n",str);
system("pause");
return 0;
}
7.
(1)建立变量符号表。
通过声明变量,编译器可以建立变量符号表,如此一来,程序中用到了多少变量,每个变量的类型是什么,编译器非常清楚,是否使用了没有声明的变量,编译器在编译期间就可以发现。从而帮助了程序员远离由于疏忽而将变量名写错的情况。
(2)变量的数据类型指示系统分配多少内存空间。
(3)变量的数据类型指示了系统如何解释存储空间中的值。
同样的数值,不同的类型将有不同的解释。int占据4个字节,float也占据4个字节,在内存中同样也是存储的二进制数,并且这个二进制数也没有标志区分当前是int型还是float型。如何区分?就是通过变量的数据类型来区分。由于声明建立了变量符号表,所以系统知道变量该如何解释。
(4)变量的数据类型确定了该变量的取值范围
例如短整型数据取值-32767~32767之间。
(5)不同的数据类型有不同的操作
如整数可以求余。C语言用符号”%”表示求余。整数可以,实数不可
8.变量的概念及本质:
变量命名规则:
标示符:
1、程序中用于标识常量、变量、函数的字符序列。
2、只能由字母、数字、下划线组成
3、第一个字母必须是字母或下划线,大小写有区别,不能使用C语言的关键字。
4、如果变量不初始化,就会默认读取垃圾数据, 有些垃圾数据会导致程序崩溃。
变量的本质:一段连续内存空间的别名
1.程序通过变量来申请和命名内存空间 int
a = 0;(变量名a在代码区,是0这个四字节内存空间的别名)
2.通过变量访问内存空间
9.修改变量的三种方法
直接修改:int
a = 10; a=20;
间接修改:内存有地址编号,拿到地址编号也可以修改内存;
外挂原理就是通过变量内存地址修改变量值
&a=1245024;
*((int *)(1245024)) = 10;
C++中引用,就是别名修改
2.cout<<sizeof(' ')<<"\n"; //输出1
count<<sizeof('aaa')<<“\n”//输出4
cout<<sizeof("")<<"\n";//输出1 只是\0
char a;//这里是一字节
printf("%d\n",sizeof(' ')); //4
printf("%d\n",sizeof('a')); //4 C语言为了空间拓展容纳更多字符 规定字符常量为4字节,字符变量一个字节
printf("%d\n",sizeof('add')); //4
printf("%d\n",sizeof("")); //1只是\0
3.全局变量可以定义在可被多个.C文件包含的头文件中
在不同的C文件中以static形式来声明同名全局变量。可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错
4.float x 与“零值”比较的if语句为 if(fabs(x)<0.00001f)
或者 if(x>-0.0000001 && x<0.0000001)
folat类型的还有double类型的,这些小数类型在趋近于0的时候直接等于0的可能性很小,一般都是无限趋近于0.因此不能用==来判断。应该用|x-0|<err来判断,这里|x-0|表示绝对值,err表示限定误差
用程序表示就是fabs(x)<0.00001f
10.void main()
{
char s1[]="ged";
char s2[]="i";
char s3[20];
sprintf(s3,"%s%s%c",s1,s2,'t');//可以实现两个字符串连接
system(s3);//打开文本编辑器
}
5.printf("%f\n",1);//0.000000
printf("%d\n",1.0);//0
printf 不管你是什么类型 只要不能按照指定的类型解析 就会返回0 表示解析失败 不会进行类型转换
底下这样进行强制类型转换就可以了
printf("%f\n",(float)1);
printf("%d\n",(int)1.0);
printf("%d\n",1/2); //向零靠齐取舍,进行隐士类型转换 0
printf("%f\n",3/2);//结果是 0.000000 商 1 按照 Printf 所设置的浮点形式 解析失败 返回0
printf("%f\n",3/2.0); //结果是 1.500000
#include<stdio.h>
#include<stdlib.h>
int main()
{
char ch='A';
int num = 1;
double d=1.0;
float f=1.0;
printf("%d\n",sizeof(ch+num)); //4
printf("%d\n",sizeof(ch+d));//8
printf("%d\n",sizeof(d+num));//8
printf("%d\n",sizeof(ch+f));//4
printf("%d\n",sizeof(f+num));//4
return 0;
} //加减乘除是可进行隐士类型转换,赋值号可以自动进行类型转换
int x=3.6; //赋值号 把3.6转换为3,大数准换小数会失精度
printf("%c\n",(char)65.0);//强转 输出 Arprintf("%c\n",65.0); // 解析失败不输出
6. 库函数自带的数制转换函数
#include<stdio.h>
#include<stdlib.h>
int
main()
{
int num;
printf("请输入整数:");
scanf("%d",&num);
char str[32];
_itoa(num,str,2);//第一个参数是要转换的数据,第二个参数是要保存的字符串,第四个是要转换的进制数
//itoa(num,str,2);
printf("%s\n",str);
itoa(num,str,16);
printf("%s\n",str);
itoa(num,str,16);
printf("%s\n",str);
system("pause");
return 0;
}
7.
声明变量的意义
C语言为什么要规定先声明变量呢?为什么要指定变量的名字和对应的数据类型呢?(1)建立变量符号表。
通过声明变量,编译器可以建立变量符号表,如此一来,程序中用到了多少变量,每个变量的类型是什么,编译器非常清楚,是否使用了没有声明的变量,编译器在编译期间就可以发现。从而帮助了程序员远离由于疏忽而将变量名写错的情况。
(2)变量的数据类型指示系统分配多少内存空间。
(3)变量的数据类型指示了系统如何解释存储空间中的值。
同样的数值,不同的类型将有不同的解释。int占据4个字节,float也占据4个字节,在内存中同样也是存储的二进制数,并且这个二进制数也没有标志区分当前是int型还是float型。如何区分?就是通过变量的数据类型来区分。由于声明建立了变量符号表,所以系统知道变量该如何解释。
(4)变量的数据类型确定了该变量的取值范围
例如短整型数据取值-32767~32767之间。
(5)不同的数据类型有不同的操作
如整数可以求余。C语言用符号”%”表示求余。整数可以,实数不可
8.变量的概念及本质:
变量命名规则:
标示符:
1、程序中用于标识常量、变量、函数的字符序列。
2、只能由字母、数字、下划线组成
3、第一个字母必须是字母或下划线,大小写有区别,不能使用C语言的关键字。
4、如果变量不初始化,就会默认读取垃圾数据, 有些垃圾数据会导致程序崩溃。
变量的本质:一段连续内存空间的别名
1.程序通过变量来申请和命名内存空间 int
a = 0;(变量名a在代码区,是0这个四字节内存空间的别名)
2.通过变量访问内存空间
9.修改变量的三种方法
直接修改:int
a = 10; a=20;
间接修改:内存有地址编号,拿到地址编号也可以修改内存;
外挂原理就是通过变量内存地址修改变量值
&a=1245024;
*((int *)(1245024)) = 10;
C++中引用,就是别名修改
相关文章推荐
- 读书心得-C语言书籍
- C语言读书心得
- C语言读书心得
- C语言读书心得
- C语言——读书心得1
- 《大话数据结构》 读书心得
- 如果是初学C语言请看完 一些成功人士的心得
- 关于C语言交换两个数的实现方法以及个人心得
- C Traps and Pitfalls (C语言陷阱和缺陷) 读书总结
- 我的C语言学习心得(二)
- Web程序员学习C语言之读书计划
- JavaCore视频的一些读书心得
- C语言编译心得
- [读书心得] .NET中 类型,对象,线程栈,托管堆在运行时的关系
- 【转】如果是初学C语言请看完 一些成功人士的心得转载的文章
- C语言学习历程(一)数据类型及变量之心得体会
- atitit 读书与获取知识资料的attilax的总结与心得 v6
- 4点起床读书心得
- 《软技能-代码之外的生存指南》读书心得 ---10步学习法
- 看了一个月资料,写一篇论文读书心得