2021-08-17 字符常量与变量

2022-08-05  本文已影响0人  Denholm
字符常量
#define _CRT_SECURE_NO_WARNINGS // 去掉安全检查
#include<stdio.h>
#include<stdlib.h>

int main(void)
{
    /*
    字符常量
    定义:用单引号括起来的单个普通字符或转义字符.
    普通字符指大小写字母和数字
    */
    putchar('A');
    putchar('B');
    putchar('C');

    putchar('\n'); // 换行
    putchar('\t'); // 制表

    putchar('1');
    putchar('2');
    putchar('3');

    putchar('A');
    putchar('B');
    putchar('C');

    putchar('\\'); // 单斜杠
    putchar('\"'); // 双引号
    putchar('\''); // 单引号

    putchar('\a'); // 响铃

    putchar('\x41'); // 十六进制41对应十进制65,对应字符A
    putchar('\101'); // 八进制101对应十进制65,对应字符A,可以通过这种方式找到字符打印出来

    putchar('\x42'); // 十六进制42对应十进制66,对应字符B
    putchar('\102'); // 八进制102对应十进制66,对应字符B

    system("pause");
    return 0;
}
字符串常量 字符常量与字符串常量
#define _CRT_SECURE_NO_WARNINGS // 去掉安全检查
#include<stdio.h>
#include<stdlib.h>

int main(void)
{
    /*
    字符串常量
    定义: 
    用双引号括起来的字符序列,如: “hello,world”        “A”          “”
    每个字符串尾自动加个‘\0’作为字符串结束标志
    */
    printf("hello, world\n");

    // 每个字符串尾自动加个‘\0’作为字符串结束标志,空字符串有一个‘\0’字符,所以占一个字节
    printf("%d\n",sizeof(""));
    // 有一个字符1,加一个\0组成一个字符串,占两个字节
    printf("%d\n", sizeof("1"));

    char ch = 'A'; // 'A'纯粹就是一个字符
    //char bc = "A"; // 字符A加/0组成字符串,占两个字节

    system("pause");
    return 0;
}
#include<stdio.h>

// 字符方式实现hello
int main() {

    printf("hello\n");
    putchar('h');
    putchar('e');
    putchar('l');
    putchar('l');
    putchar('o');

    printf("\n");
    // ASCII码
    putchar(104);
    putchar(101);
    putchar(108);
    putchar(108);
    putchar(111);

    printf("\n");
    // 八进制
    putchar('\150');
    putchar('\145');
    putchar('\154');
    putchar('\154');
    putchar('\157');

    printf("\n");
    // 十六进制
    putchar('\x68');
    putchar('\x65');
    putchar('\x6c');
    putchar('\x6c');
    putchar('\x6f');

    return 0;
}
字符‘1’和整数1的区别
#include<stdio.h>

// 字符1与整数1的区别
int main() {

    // 字符’1’只是代表一个形状为’1’的符号,在需要时按原样输出,在内存中以ASCII码形式存储,占1个字节
    char ch = '1'; // 16进制:31 二进制:0011 0001
    // 整数1是以整数存储方式(二进制补码方式)存储的,占2个或4个字节
    short sh = 1; // 16进制:0001 二进制: 0000 0000 0000 0001

    // 字符占一个字节,短整数占两个字节
    printf("%d, %d\n", sizeof(ch), sizeof(sh));
    printf("%x, %x\n", &ch, &sh);

    // 字符1按照%d也就是求字符的编号,ASCII码49;按照%c就是求该字符本身,也就是'1'
    printf("%d, %c\n", ch, ch);
    // 整数1按照%d就是整数1,按照%c就是求编号为1的字符
    printf("%d, %c\n", sh, sh);

    return 0;
}
image.png
#include<stdio.h>

// 字符变量的计算
int main() {

    char ch = 'A';
    // %c就是按字符方式打印,%d就是按字符的ASCII码打印
    printf("%c, %d\n", ch, ch);
    // 字符型变量在内存中占一个字节,由于存储的是字符的二进制ASCII码,与整型存储方式类似,
    // 因此字符型变量和整型数据可以相互运算
    ch = ch + 1; // ch是字符'A',对应整数65,65+1=66,66对应字符'B'
    printf("%c, %d\n", ch, ch);

    return 0;
}
上一篇下一篇

猜你喜欢

热点阅读