嵌入式学习——C语言数据结构(学习中遇到的坑点)

一、char的+'0'

        如果你想把一个数字8转化为字符串‘8’,你要怎么做?

      废话不多说!直接上代码

#include <stdio.h>

int main()
{
		char b;
		int a = 8;
		b = a + '0';
		printf("%c\n",b);
		printf("b的字节大小:%d\n",sizeof(b));



		return 0;
}

        

我们可以看到输出结果中虽然还是8,但是它的类型其实已经变了,变成char类型了,因为char类型的字节是1.

我们是根据ASCLL码表对应,‘8’对应的是56,而‘0’是48,我们加上一个8刚好是56,ASCLL中56对应的字符‘8’。


二、零值,空指针值或空成员指针值将转换为false;其他任何值都将转换为true。

因为之前学习的是Java,所以一开始容易把负数也下意识以为是false。


三、a=3 b=6 进行交换 按位操作进行交换 进行异或操作

方法一:开辟新的一个内存空间,然后进行存值。
temp = a;
a = b;
b = temp;
方法二:不开辟新的内存空间,进行交换(非常有意思)
a = a + b;
b = a - b;
a = a - b;
方法三:进行按位运算的换算(只适用于整数,因为要转换成二进制的)
a = a ^ b
b = a ^ b
a = a ^ b

四、如何接收char类型的数据?

#include <stdio.h>
  2 
  3 int main()
  4 {
  5         char ch;
  6         int i;
  7         printf("请输入一个字符:\n");
  8         scanf("%c",&ch);
  9         for (i=0;(ch=getchar( ))!='\n';i=i+ch)// 循环读取输入的字符,直到遇到换行符
 10         {
 11         printf("%c",ch);   // 打印每个字符                                                         
 12         }
 13 
 14 
 15         return 0;
 16 }
~        

getchar() 函数在读取输入时会将输入的字符放入输入缓冲区中,程序通过不断读取缓冲区中的字符来获取用户输入,直到缓冲区为空。当按下 Enter 键时,输入的字符会被依次放入缓冲区,其中换行符 '\n' 也会被存储在缓冲区中,表示输入行的结束。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值