第一章导言的笔记与思考-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

第一章导言的笔记与思考

简介:

1.1 hello,world

~初学人来说还是一大障碍,手写编写程序文本,然后成功的进行编译,并加载、运行,然后输出到某个地方。

#include<stdio.h>

int main()

{

    printf(“hello,world\n”);

    return 0;

}

思考:renturn 0; 为啥呢? return -1; return 1000;可以吗? 答案是可以的。

 

~一个C语言程序,无论大小,都是由函数和变量组成。

 

~~#include<stdio.h>用于告诉编译器在本程序中包含标准输入/输出库的信息。

思考:编译器?有哪些?干嘛用?
答案是:例如常见的gcc (GNC Compiler Collection)GNC编译器套件,初衷是为了GNC编写的一款编译器。被大部分UNIX采纳为标准编译器。四个相关步骤:预处理 → 编译 → 汇编 → 链接,详情查阅:
gcc百科

 

~用双引号括起来的字符序列为字符串或者字符串常量。

思考:字符串常量?有木有字符串变量呢?答案是:有的。

 

~~printf函数永远不会自动换行。

 

1.2变量与算数表达式

~~int与float类型的取值返回取决于具体的机器。

思考:跟机器,还是编译器?那标准是什么?

答:C标准只规定了short至少16位,long至少32位,long long 至少64位[1],同时long long >= long >= short。至于具体多少由机器上的编译器决定。

 

~好习惯:每行指书写一条语句,并在运算符两本各加上一个空格。

 

~~%6.1f:至少占6个字符宽,精确到小数后一位。%o 表示八进制数,%x表示十六进制数,%c表示字符,%s表示字符串,%%表示%本身。

 

1.3for 语句 1.4 符号常量

~for语句是while语句的推广。

 

~在程序中,不要使用200,”1″这种幻数

 

~#define指令吧符号名定义为一个特定的字符串。末尾无分号。

 

1.5 字符输入/输出

~~输入和输出都是按照字符流的方式处理的。问奔流是有多行字符构成的字符序列,而每行字符则由0个或者多个字符组成,行末是个换行符。一次读/写一个字符的函数:getchar 和 putchar。

 

1.5.1 文件复制

    ~~字符在机器内部都是以为模式存储的。char类型专门在于存储这种字符类型数据。

 

    ~EOF定义在<stdio.h>头文件,是一个整型数。具体数值是什么并不重要,只要它与任何char类型的值不相同即可。可以确保程序不需要依赖于其对应的任何特定数值。

 

    ~不等于运算符的优先级高于赋值元算符=。

  

1.5.2 字符统计

    ~~long整形,长整型至少要占用32位存储单元。在某些机器上int与long类型的长度相同,int类型的值只有16位存储单元的长度。

 

   ~ @.0f强制不打印小数点和小数部分。

 

    ~单独的分号称为空语句。

 

1.5.3 行计数

   ~~单引号字符表示一个整形数,此字符在机器字符集中对应的数值。称为字符常量。

 

    ~‘\n’代表换行符的值,ASCII值为10。

 

1.5.4

    ~nl = nw = nc =0; 等价于  nl = (nw = (nc =0)); 由右往左。

 

1.6 数组

   ~ 数组下标可以是任何整形表达式。包括整形变量(如i)以及整形常量

 

1.7 函数

    ~~如果源程序分散在各个文件中,编译和加载时会做更多的工作,但是这个是操作系统的原因,并不是语言的决定的。

 

    ~~调用者实际上的就是程序的执行环境,返回为0表示正常终止,非0表示异常情况或者出错结束条件。

 

    ~建议:在使用新式的编译器时,最好使用新式的函数原形声明方式。

  

1.8 参数-传值调用

  ~ ~在C语言中,所有函数参数都是”通过值”来传递的.

   ~~ 调用者需要想被调用提供设置值得变量地址。地址就是变量的指针。被调用者需要将其设置为指针类型,并通过间接访问变量。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: