【C语言】小知识点(字符char及对应的int值,字符数组和字符指针)

1、字符char及对应的int值

ASCII码中,每个字符对应一个int数值。例如:大写字母 'A' 到 'Z' 分别对应65到90,小写字母 'a' 到 'z' 分别对应97到122。

占位符:%c则表示一个字符char,%d则表示字符对应的int值。

不少函数中将无符号字符转换为int值进行参数传递。例如:标准库stdio.h中的fgetc, fputc, getc, putc, getchar, putchar等。

输出大写字母及对应的int值:

#include <stdio.h>

int main(void)
{
    char c;
    for(c = 'A'; c <= 'Z'; c++)
    {
        // %c输出字符, %d输出字符对应的int值
        printf("%c:%d", c, c);
        printf(", ");
    }
    return 0;
}

// 结果:
A:65, B:66, C:67, D:68, E:69, F:70, G:71, H:72, I:73, J:74, K:75, L:76, M:77, N:78, O:79, P:80, Q:81, R:82, S:83, T:84, U:85, V:86, W:87, X:88, Y:89, Z:90, 
#include <stdio.h>

int main(void)
{
    int c;
    for(c = 65; c <= 90; c++)
    {
        // %c输出字符, %d输出字符对应的int值
        printf("%c:%d", c, c);
        printf(", ");
    }
    return 0;
}

// 结果:
A:65, B:66, C:67, D:68, E:69, F:70, G:71, H:72, I:73, J:74, K:75, L:76, M:77, N:78, O:79, P:80, Q:81, R:82, S:83, T:84, U:85, V:86, W:87, X:88, Y:89, Z:90, 

输出小写字母及对应的int值:

#include <stdio.h>

int main(void)
{
    char c;
    for(c = 'a'; c <= 'z'; c++)
    {
        // %c输出字符, %d输出字符对应的int值
        printf("%c:%d", c, c);
        printf(", ");
    }
    return 0;
}

// 结果:
a:97, b:98, c:99, d:100, e:101, f:102, g:103, h:104, i:105, j:106, k:107, l:108, m:109, n:110, o:111, p:112, q:113, r:114, s:115, t:116, u:117, v:118, w:119, x:120, y:121, z:122, 
#include <stdio.h>

int main(void)
{
    int c;
    for(c = 97; c <= 122; c++)
    {
        // %c输出字符, %d输出字符对应的int值
        printf("%c:%d", c, c);
        printf(", ");
    }
    return 0;
}

// 结果:
a:97, b:98, c:99, d:100, e:101, f:102, g:103, h:104, i:105, j:106, k:107, l:108, m:109, n:110, o:111, p:112, q:113, r:114, s:115, t:116, u:117, v:118, w:119, x:120, y:121, z:122, 

2、字符数组和字符指针

字符数组:

  • 数组,一块连续的内存空间,数组中每个元素存储的是一个字符。字符数组通常用于存储字符串,字符串最后一个元素是结束符'\0'。
  • 数组的内存地址不能改变,数组名是数组的内存地址(也是数组第一个元素的内存地址)。
  • 数组中元素的内容可以修改。
  • 数组存储在栈中。调用函数结束,数组就会被释放。
  • char 数组名[字符数量] = 初始化值;

字符指针:

  • 指针,指向字符数组。指针变量中存储的是字符数组第一个字符的内存地址。
  • 指针 指向的内存地址可以修改,可以指向其它内存地址。
  • 指向的字符数组是字符串常量,即指向的字符串的值不能改变。
  • 指向的字符串常量存储在常量区。只要指针还在,指针指向的内存就不会被释放。
  • char *指针变量名;  指针变量名=字符串常量;

字符串:

  • 可以数组,也可以指针。
  • 以结束符'\0'为终止,即字符串最后一个元素是'\0'。
// 字符数组
char s[6] = "hello";


// 字符指针
char *s;
s = "hello";

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-10 17:34:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-10 17:34:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-10 17:34:02       82 阅读
  4. Python语言-面向对象

    2024-04-10 17:34:02       91 阅读

热门阅读

  1. Fiddler的安装和使用

    2024-04-10 17:34:02       27 阅读
  2. 【C++】深入理解C++命名空间

    2024-04-10 17:34:02       31 阅读
  3. 【iOS ARKit】App 中嵌入 AR Quick Look

    2024-04-10 17:34:02       33 阅读
  4. Python map遍历

    2024-04-10 17:34:02       32 阅读
  5. BERT入门:理解自然语言处理中的基本概念

    2024-04-10 17:34:02       30 阅读
  6. About MATLAB

    2024-04-10 17:34:02       36 阅读
  7. 【鸿蒙NEXT】设置全屏

    2024-04-10 17:34:02       88 阅读
  8. Vue中实现【组件局部刷新】及【页面刷新】

    2024-04-10 17:34:02       37 阅读
  9. Linux中redis测试环境搭建3主3从

    2024-04-10 17:34:02       32 阅读
  10. linux microcom输出十六进制的方式

    2024-04-10 17:34:02       32 阅读
  11. LeetCode 94. 二叉树的中序遍历

    2024-04-10 17:34:02       33 阅读
  12. 【Linux】tcpdump P2 - 捕获和查看网络数据包

    2024-04-10 17:34:02       34 阅读
  13. Git 命令及示例

    2024-04-10 17:34:02       33 阅读
  14. 等价类测试

    2024-04-10 17:34:02       32 阅读
  15. 坚持10天做完Python入门编程100题第二天

    2024-04-10 17:34:02       40 阅读