学习心得(五)
2008-01-17 17:36
211 查看
1.数组
下标只能为整型常量或整型表达式。为小数时,C编译将自动取整:a[1.5]即a[1]。
2.二维数组
存储时按照行排列。
只对部分元素赋初值时,未赋值的元素自动取0。
3.scanf的例子
为了告诉大家scanf中若参数为数组,就不需要加&,老潭的书中有这样一个例子:
main()
{
char st1[3],st2[3];
printf("input string:/n");
scanf("%s%s",st1,st2);
printf("%s %s/n",st1,st2);
}
我好奇:%s%s之间没有隔断,怎么分清除哪些输入是st1的哪些是st2的?经过调试,原来是这样的:
输入:aa空格aa,输出:aa aa; ——正确
输入:aaaa,输出:无; ——错误
输入:aa回车aa回车,输出:aa aa;——正确
可见,scanf自动地把空格和回车作为结束符。
在输入类型为int时,非法字符(!¥%等等)被gcc视为第一个值的结束符号,第一个值得获得成功,而获得的第二个值是错误的。
5.宏
宏定义是用宏名来表示一个字符串,是个简单的代换,注意带括号以避免错误。
宏定义必须写在函数之外,其作用域为宏定义命令其到源程序结束。如要终止其作用域,可使用#undef命令。
宏定义允许嵌套,在宏定义的字符串中可以使用已经定义的宏名。
带参宏定义中,宏名和形参表之间不能有空格。形参不分配内存但愿,因此不作类型定义。
宏定义中可以有多条语句。
6.条件编译
#ifdef AA的意思是,如果AA被定义过,则编译以下语句。
#ifndef AA的意思是,如果AA没有被定义过,则编译以下语句。
#if AA:如果AA的值非零,则编译以下语句。
7.文件使用方式
r(read): 读
w(write): 写
a(append):追加
t(text): 文本文件
b(banary): 二进制文件
+: 读和写。
8.进制
i=012时,编译器认为023是8进制数,以%d打印得10。所以,要考虑数字前加0的情况,以免造成误解。
i=0x12时,认为是十六进制数,以%d打印得18。不区分x的大小写。
9.精确度
float提供7位有效数字,double提供16位有效数字,都精确到小数点后6位(多余的四舍五入)。
10.if和else
else总是和最近的if配对。所以,为了避免二义性,要好好利用{}和缩进。
下标只能为整型常量或整型表达式。为小数时,C编译将自动取整:a[1.5]即a[1]。
2.二维数组
存储时按照行排列。
只对部分元素赋初值时,未赋值的元素自动取0。
3.scanf的例子
为了告诉大家scanf中若参数为数组,就不需要加&,老潭的书中有这样一个例子:
main()
{
char st1[3],st2[3];
printf("input string:/n");
scanf("%s%s",st1,st2);
printf("%s %s/n",st1,st2);
}
我好奇:%s%s之间没有隔断,怎么分清除哪些输入是st1的哪些是st2的?经过调试,原来是这样的:
输入:aa空格aa,输出:aa aa; ——正确
输入:aaaa,输出:无; ——错误
输入:aa回车aa回车,输出:aa aa;——正确
可见,scanf自动地把空格和回车作为结束符。
在输入类型为int时,非法字符(!¥%等等)被gcc视为第一个值的结束符号,第一个值得获得成功,而获得的第二个值是错误的。
5.宏
宏定义是用宏名来表示一个字符串,是个简单的代换,注意带括号以避免错误。
宏定义必须写在函数之外,其作用域为宏定义命令其到源程序结束。如要终止其作用域,可使用#undef命令。
宏定义允许嵌套,在宏定义的字符串中可以使用已经定义的宏名。
带参宏定义中,宏名和形参表之间不能有空格。形参不分配内存但愿,因此不作类型定义。
宏定义中可以有多条语句。
6.条件编译
#ifdef AA的意思是,如果AA被定义过,则编译以下语句。
#ifndef AA的意思是,如果AA没有被定义过,则编译以下语句。
#if AA:如果AA的值非零,则编译以下语句。
7.文件使用方式
r(read): 读
w(write): 写
a(append):追加
t(text): 文本文件
b(banary): 二进制文件
+: 读和写。
8.进制
i=012时,编译器认为023是8进制数,以%d打印得10。所以,要考虑数字前加0的情况,以免造成误解。
i=0x12时,认为是十六进制数,以%d打印得18。不区分x的大小写。
9.精确度
float提供7位有效数字,double提供16位有效数字,都精确到小数点后6位(多余的四舍五入)。
10.if和else
else总是和最近的if配对。所以,为了避免二义性,要好好利用{}和缩进。
相关文章推荐
- 学习心得
- Angular2学习心得
- JSP学习心得,干
- OpenLayers3 学习心得(六)——WMS服务
- vue学习心得
- 2018.3.1学习心得
- 关于进程间通信的学习心得
- Surf算法学习心得(三)——OpenCV:SURF算法浅析
- 在老男孩学习心得
- 《Windows程序设计》第三章学习心得(1)|图解消息机制
- C++虚函数表学习心得之由类实例地址到虚函数表再到虚函数地址中各种地址解析
- 软件工程学习心得(一)
- 学习心得
- java学习心得
- 从今天开始,有空就写写自己学习android心得。
- 分布式服务器学习心得
- 数据库学习及心得体会
- java学习心得
- 给php新手谈谈我的学习心得
- c++学习心得(二)