学习心得(二)

 

 

 1.调用函数时,和被调用函数之间的变量传递
    被调用函数接收的是变量的私有的临时拷贝,被调用函数不能影响调用者的原变量。但是,如果数组名出现在函数的参数中,那是将数组的起始地址传给参数的,于是被调用函数可以改变数组元素的值,这就是说数组是传地址的。

2.常用的头文件
    使用printf要包含stdio.h。
    使用strlen等要包含string.h。
    使用atof要包含stdlib.h。若只包含math.h,gcc编译通过,但atof的返回值是个奇怪的数字。

3.数组的初始化、求长度
    不定长的数组一旦定义就得立即初始化;定长数组的初始化,可以在定义时,也可以随后。
    char类数组用sizeof求长度,strlen求实际长度。
    其他类型的数组:sizeof(array)/sizeof(unit)求长度。由于在存储时没有结束符号,导致无法直接计算实际元素个数。在申请数组时,分配的空间段有结束标志,所以数组的大小是容易得到的,但仅仅是标志,如果操作越界,不会报错。

4.函数的返回值
    隐含约定一函数,若未说明它的类型则它回送整型值。

5.寄存器变量
    一个变量被说明为寄存器(register),即是告知编译程序该变量经常用到。只要有可能,寄存器变量就被放在机器的寄存器内,它能产生更小更快的程序。
    是实际应用中,寄存器变量受某些约束以反映硬件的实际情况。在每个函数中,只能有很少几个变量可以放在寄存器内,而且仅有某些类型的变量可以是寄存器变量。

6.重复赋值
    如果变量(如char、int类型)重复赋值,可以通过gcc编译,以最后一次赋值为准。

7.预处理
    在双引号括起来的字符串中的名字是不会被取代的。
    如#define YES 1,printf("YES")的执行结果是YES。

8.取指针
    运算符&只能作用于变量和数组的元素。&(x+1)和&3、取寄存器变量的地址,都是非法的。

9.指向字符串的指针
    char *p , p = "hello",这样使用是没问题的。不为字符串分配空间的缺点在于:不能改变字符串的内容。

10.指针的大小
    sizeof(指针)=4;当指针是数组首指针时除外(是数组大小)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值