C细节考点记录

  • 没有分号的称为表达式,有分号的称为语句。

  • '\0’=0=NULL,'0’=48

  • int x=y=10错误在于:只定义了int x,没有定义int y

  • A/B运算,AB均为正整数则结果为整数(舍去余数),AB凡有一个为实数,则结果为实数。

  • A%B运算,AB必须为整型数据。仅当A为负整数时,结果为负数。

  • 赋值运算仅可赋值给变量,不可以赋给常量和表达式。

  • 自增自减运算只能作用于变量,不能作用于常量和表达式。

  • sizeof() 用法例:sizeof (int); sizeof(i);sizeof i。

  • 结合性没写的为从左到右
    结合性没写的为自左向右

  • 仅printf会对实数四舍五入,其他都是直接砍掉。例:float a=1.636; printf("%.2f",a);输出值为1.64。 float a=1.634; a=(int)a; 则a=1。如果没有五入,可能是因为是浮点数出现了不准确,变成了取舍位接近5,但小于5的数。

  • scanf函数:
    前一scanf为整型或实型输入,后scanf为字符型输入,中间要跟getchar(),来存放空格/换行,否则字符型变量会得到空格/换行。
    前者为字符性输入,后者为整型或实型输入,前者输入后可以直接空格/换行,不会被后面变量得到。
    前后两个scanf都是字符型,则和整型实型输入相同。

  • scanf和getchar同时存在:
    如果scanf是输入字符型,则两者不论谁在前,中间都不可输入空格/换行,否则会被后者得到。
    如果scanf是输入整型或实型,则getchar用法等同于输入字符型的scanf,参考上面scanf函数中一二种情况。

  • switch(a)若a为char型,则case ‘1’:(例),若a为整型,则case 1:。

  • char a[10]=“abc”,b[10]=“012”,c[10]=“xyz”;
    strcpy(a+1,b+2);//用b[2]及以后全部来 从a[1]覆盖到完,也就是a[10]={“a2”}
    puts(strcat(a,c+1));//用c[1]及以后接在新数组后,也就是a[10]={“a2yz”}

  • 指针指向变量和数组:
    指向变量
    定义同时初始化 int a,*p=&a;
    先定义后初始化 int a ,*p; *p=a或p=&a;
    地址为p,值为a;
    指向数组
    定义同时初始化 int a[10],p=a或p=&a[0];
    先定义后初始化 int a[10],*p; p=a或p=&a[0];
    第i个元素地址为(a+i) / (p+i) / &a[i] / &p[i] 值为*(a+i) / *(p+i) / a[i] / p[i]

    注:数组的a和指针p都是指向地址

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值