读《C语言高级实用编程技巧》备忘

'0'是个字符,其内部表示则与平台有关,比如为48;我要从终端c=getchar(),得到一个数字,则'c'-'0'才能得到想要的那个数字

 

 

乘法运算符“*”双目运算,具有左结合性。

除法运算符“/”双目运算具有左结合性。参与运算量均为整型时, 结果也为整型,舍去小数。如果运算量中有一个是实型,则结果为双精度实型。

void main(){

printf("/n/n%d,%d/n",20/7,-20/7);

printf("%f,%f/n",20.0/7,-20.0/7);

}

双目运算具有左结合性。参与运算量均为整型时, 结果也为整型,舍去小数。如果运算量中有一个是实型,则结果为双精度实型。 printf("/n/n%d,%d/n",20/7,-20/7);

printf("%f,%f/n",20.0/7,-20.0/7);

本例中,20/7-20/7的结果均为整型,小数全部舍去。而20.0/7-20.0/7由于有实数参与运算,因此结果也为实型。

 

实型变量分为两类:单精度型和双精度型;实型常数不分单、双精度,都按双精度double型处理。

 

 

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

 

字符数组的初始化:

char pattern[]=”the”;

相当于:
char pattern[]={‘t’,’h’,’e’,’/ 0’ };

大小为4

 

*是取内容运算 &是取地址运算

 

C语言没有专门定义字符串数据类型(如其他语言中的string),它用以'/0'结尾的字符数组来表示一个逻辑意义上的字符串。C语言用一些对于字符数组的处理函数(特别是对以'/0'结尾的字符数组的处理函数)来处理所谓的以'/0'结尾的字符串,并把他们放在string.*stdio.*等一些标准库文件中。 为什么传一个char *指针给printf(),strlen()之类的函数,它就能把它当作一个字符串来处理呢?没错,我们不是定义了'/0'来表示一个"字符串"的终结么?我们只需从起始地址不断累加,遍历字符数组的每一个元素,直到找到一个'/0'为止,就算是处理一个字符串了——从起始地址到'/0'为止的字符数组元素构成一个字符串,这就是C语言设计字符串的原理。

 

 

       EOF:end of file(猜的)。在windows下是ctrl+z, enter;在linuxctrl+d

Putchar/getcharputc/getc都是宏而不是函数

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值