c与指针读书笔记(20190325-27)

第一章节

在c语言中,数组参数是以引用(reference)形式进行传递的,也就是地址调用,而标量和常量是按值(value)传递的。

 

字符串由双引号括起来,每个字符串都由NLI(类似符号\0)做结尾,故"hello"占6个字节。

 

printf格式与含义:

%d 十进制整数

%o 八进制

%x 十六进制

%g 一个浮点值

%c 一个字符

%s 一个字符串

 

scanf所有标量参数前必须加上一个&符号,但数组参数前不加,但如果数组参数中如果出现了下标引用,也就是说实际参数是数组的某个特定元素,那么要加&。例:scanf("%d",&columns[num]);

 

在函数声明的数组参数中,并未指定数组长度,可接受无论多长的字符串。

 

for循环第一部分在循环开始前执行一次,第二部分在循环每执行一次后执行一次,第三部分在每次循环执行后执行一次。

 

getchar();

scanf()在读取输入时会在缓冲区留下一个字符 \n(因为我们输入时以回车键为结束导致),所以在连续输入字符串时需要getchar()清除\n;

getchar()在输入缓冲区按顺序读入一个字符(包括空格,回车和tab);

getchar()一般不返回负值,除了EOF

putchar();

 

strcpy();把右边的字符串赋值给左边;

strcat()函数接收两个参数,把第二个字符串添加到第一个字符串末尾;

strchr()在字符串内进行搜索,第一个参数是字符串,第二个参数是一个字符,成功就返回一个指向这个位置的指针,失败返回NULL,strstr()与之相似,但第二个参数是字符串。

 

第二章节

c的两种环境:

翻译环境:将代码转换为可执行的机器指令;

执行环境:执行代码。

 

交叉编译器:在一台机器(宿主机)上运行,但它所产生的可执行代码可运行于其他机器(目标机)上;

独立环境:不存在操作系统的环境。

 

三字母词:注意程序中的??_,当一个字符连续出现使有可能会有歧义,可在字符串前加个\避免这类错。

 

标识符:是变量,函数,类型等的名字,由大小写字母,数字和下划线组成,但不能以数字开头,不能与关键字重复。

 

 

第三章节

数据有4种基本数据类型:整型,浮点型,指针,聚合类型(数组与结构)

各类型数据所占位数大小:

long型数据不短于int型,short型不长于int型,这个由计算机决定。

 

 

如果显明地将变量声明为signed或unsigned,可提高程序移植性,解决不同机器中字符是否有符号这一问题,但也可能影响效率。

 

字面值:const变量,声明后初始化后值无法改变。

 

??枚举:

enum Tar_type {cup,pint,quart,gallon};

类似于结构体?

 

浮点数:至少能容纳从10^-37~10^37之间的任何值,默认double型,L/l为long double 型,F/f 为float型。

 

作用域

四种作用域:

文件作用域,函数作用域,代码块作用域(一对花括号之间),原型作用域

形参的作用域是整个函数体;

文件作用域:在所有代码之外声明的标识符都具有文件作用域,例:想要使用之后创建的函数可以提前声明;

??原型作用域:防止这些参数与程序其他部分名字冲突。

 

链接属性:external(外部),internal(内部),none(无)

没有链接属性的标识符none总是被当做单独的个体,意味着每个实体都是不同的;

属于internal链接属性的标识符在同一个源文件中的所有声明都指向同一个实体;

属于external的无论声明多少次,位于几个源文件都表示同一个实体。

 

存储类型:

缺省的是自动的,存于堆栈中;

static静态的;

register 寄存器变量。

 

for循环中break用于跳出循环,continue用于跳过本次循环进行下次循环。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值