首页 > 其他分享 >关于字符与字符常量的理解

关于字符与字符常量的理解

时间:2024-11-05 20:41:43浏览次数:3  
标签:字符 ch 常量 char 理解 ASCII 变量

在 C 语言中,字符常量字符变量是不同的概念:

1. 字符常量

字符常量是代码中用单引号括起来的单个字符,表示这个字符的 ASCII 值。字符常量本质上是一个整数常量,代表该字符的 ASCII 值或其他编码值(如 UTF-8)。

示例

char ch = 'A'; // 'A' 是字符常量,其 ASCII 值为 65

特点:

  • 字符常量用单引号 ' ' 包围,例如 'A''1'' '
  • 它的类型是 int,不是 char,即 'A' 的类型是 int,其值是 65。
  • 在表达式中,字符常量会被当作整数处理,例如,'A' + 1 会被计算为 66

2. 字符变量

字符变量是声明了 char 类型的数据变量,用于存储单个字符的数据。字符变量可以存储字符常量的值(例如 ASCII 码),也可以存储整数值,但它通常用于表示单个字符。

示例

char ch = 'A'; // ch 是字符变量,存储字符常量 'A'

特点:

  • 字符变量类型是 char,通常占用 1 字节(8 位)。
  • 它存储的是字符的 ASCII 值或其他编码值,但在输出时可以用字符形式表示。

区别总结

特性 字符常量 字符变量
类型 int char
存储大小 通常为 4 字节(在大多数系统上 int 是 4 字节) 1 字节
书写方式 单引号括起来,如 'A' char 类型定义,如 char ch;
用途 表示单个字符的 ASCII 值 存储单个字符的 ASCII 值或其他编码值
操作效果 作为整数常量使用 作为字符型变量使用

示例对比

#include <stdio.h>

int main() {
    char ch = 'A';    // 字符变量,存储字符 'A' 的 ASCII 值
    int code = 'A';   // 字符常量 'A',本质是整数值 65

    printf("Character variable ch: %c\n", ch);     // 输出 A
    printf("Character constant code: %d\n", code); // 输出 65
    return 0;
}

输出

Character variable ch: A
Character constant code: 65

总结

  • 字符常量是一个用单引号表示的单个字符,其本质是一个整数类型。
  • 字符变量char 类型变量,用于存储单个字符的值。

标签:字符,ch,常量,char,理解,ASCII,变量
From: https://www.cnblogs.com/hhail08/p/18522503

相关文章

  • 什么是AOP面向切面编程?怎么简单理解?
    本文原文地址:什么是AOP面向切面编程?怎么简单理解?什么是AOP面向切面编程面向切面编程(AOP)通过将横切关注点(cross-cuttingconcerns)分离出来,提供了一种增强代码模块化和可维护性的方法。简单来说,AOP就是将公共的模块封装成公共的方法,然后在需要的时候(这个就是切入点),直接就可以调用......
  • 【字节青训营--还原原始字符串(中)】
    问题描述给定一个字符串 F,这个字符串是通过对某个初始字符串 S 执行若干次以下操作得到的:选择一个整数 K(其中 0≤K<∣S∣0≤K<∣S∣,∣S| 表示字符串 S 的长度)将 S 从第 K个位置(从0开始计数)到末尾的子串追加到 S 的末尾,即:S=S+S[K:]输入格式输入为一个字符串 F......
  • ZYB 玩字符串
    Link。Sol好题!我不是DP高手吗,怎么这么简单的DP题没场切。考虑暴力枚举子串,显然最多有\(n\sqrtn\)个,这些子串一定包含答案。对于一个串\(t\)和原串\(s\),考虑\(s\)是否能用\(t\)拼出来。设\(t\)的长度为\(len\)。令\(f_{i,j}\)表示\(i\simj\)最后不能......
  • C++——用指向指针的指针的方法对5个字符串排序并输出。
    没注释的源代码#include<iostream>#include<string.h>usingnamespacestd;voidsort(char**p);intmain(){  constintm=20;  char**p,*pstr[5],str[5][m];  for(inti=0;i<5;i++)    pstr[i]=str[i];  cout<<"pleaseinput5......
  • C++——输入一个字符串,内有数字和非数字字符,如a123x456_ 17960?302tab5876将其中连续
    没注释的源代码#include<iostream>#include<stdio.h>usingnamespacestd;intmain(){  charstr[50],*pstr;  inti,j,k,m,e10,digit,ndigit,a[10],*pa;  cout<<"pleaseinputstring:"<<endl;  gets(str);  pstr=&str[......
  • Python学习的自我理解和想法(27)
    学的是b站的课程(千锋教育),跟老师写程序,不是自创的代码!今天是学Python的第27天,学的内容是python操作pptx和pdf,但是这节博客只会介绍如何新建pptx和加密pdf。开学了,时间不多,写得不多,见谅。目录1.安装必要的库2.创建PPTX(1).创建幻灯片对象(2).选择母版添加一页(3).获取标题......
  • 数据结构,问题 G: 字符串匹配问题
    题目描述字符串中只含有括号(),[],<>,{},判断输入的字符串中括号是否匹配。如果括号有互相包含的形式,从内到外必须是<>,(),[],{},例如。输入:[()]输出:YES,而输入([]),([])都应该输出NO。输入文件的第一行为一个整数n(0<n<20),表示以下有多少个由括号组成的字符串。接下来的......
  • FreeRtos中任务的有关理解
    osThreadNew 和 xTaskCreate 都是用于创建任务(线程)的函数,但它们属于不同的接口和框架。接口层级:xTaskCreate:是FreeRTOS的原生API直接用于创建任务,属于FreeRTOS的核心函数。这是一个更低级的接口,直接与FreeRTOS的调度器交互。osThreadNew:是根据CMSIS-RTOSA......
  • 算法笔记-Day09(字符篇)
    151.反转字符串中的单词classSolution{publicStringreverseWords(Strings){intlen=s.length(),count=0;StringBuffertemp=newStringBuffer();StringBufferans=newStringBuffer();for(inti=0;i<len;i++){......
  • #Java-对象补充及字符串详讲
    0.类和对象深入解释在Java中,类(Class)和对象(Object)是两个核心概念,它们共同构成了面向对象编程(OOP)的基础。类(Class)定义:类是一个模板或蓝图,它描述了具有相同属性和行为的一组对象的共同特征。在Java中,类通过关键字class来定义。组成:类通常由成员变量(也称为属性或字段)和方......