C备忘笔记

main(){ ... } 函数是一个特殊的函数,并不需要参数。

格式符:

  • %d 按照十进制整型数打印
  • %ld 长整型
  • %6d 按照十进制整型数打印,至少6个字符宽
  • %f 浮点数打印
  • %.2f 浮点数,小数点后有两位
  • %3.2f 浮点数,小数点后有两位,占3个字符宽
  • %o 8进制
  • %x 16进制
  • %% 表示%号本身

符号常量:

符号常量大写,语句结尾无需分号。
#define NUMBER 10


限定符const

const cant_modified = 'always'; 其值将不能被修改。


字符输入输出getchar putchar

EOF(end of file),定义在stdio.h中,是个constant,一个整型数。
在没有输入时,getchar将返回一个特殊值,被称为EOF。

#include <stdio.h>

main(){
    int c;
    c = getchar();
    while (c != EOF){
        putchar(c);
        c = getchar();
    }
} 

/* simplify edition */
main(){
    int c; 
    while ((c = getchar()) != EOF){
        putchar(c);
    }
}

类型转换

赋值时也需要进行类型转换,赋值运算符右边的值需要转换为左边变量的类型,左边变量的类型即赋值表达式结果的类型。

把较长的整数转换为较短的整数或char类型时,超出的高位部分将被丢弃。

int i;
char c;

i = c;
c = i;

执行后,c的值将保持不变。但是如果反过来,把高位的转换为低位,则有可能丢弃超出的高位部分。
所以当 float f; 转换为 int i;,即 i = f;,小数部分将被舍弃,是进行四舍五入还是舍弃取决于具体的实现。


强制类型转换

在任何表达式中都可使用强制类型转换:(类型名) 表达式
Note:强制类型转换只是生成一个指定的n的值,n本身的值并没有变。强制类型运算符和其他一元运算符优先级相同。

#include <math.h>
sqrt((double) n)

/* 2将被自动转换为2.0 */
duble sqrt2(double);
root = sqrt2(2);

单双引号

C中单双引号是有区别的,单引号中表示字符,而双引号表示字符串。
因此 'a' 表示字符, 在ASCII码中对应数字为97 。

printf("%d\n", 'a');    /* 将会打印97 */

自增自减,前缀后缀的区别

如果单单是用在变量上,两者最后结果是一样的:如 n++++n 结果是一样的。 但是前缀和后缀在C中还是有区别的:
++n 表示先将n的值递增1;
n++表示先使用变量n的值,再将n值递增1。

所以,如果n的值为10:
x = n++; x的值还是10,n为11
x = ++n; x的值为11,n为11

表达式(a+b)++ 是非法的。

#include <stdio.h>

main(){
    char a[] = "wha";
    int n = 2;
    a[n++] = 't';
    a[n++] = '\0'
    printf("%s\n", a);
}

结果为: wht
'\0' 为字符串结束符号)
n=2, a[n++] = 't' 后缀自增此时最先作用的其实是a[n] = 't', 之后n才会做自增。


函数

placeholder() {} 像这样什么不执行任何操作,不返回任何值的空函数一般用来做预留。

如果函数定义中省略了返回值类型,则默认认为 int 类型。

三元操作符

int a, b, samll;
a = 10;
b = 20;
small = (a < b) ? a: b; 
/* like python: small = b if a > b else a */
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值