C语言:设有说明语句:char a='\72';则变量a()中72为何是八进制的

供稿:hz-xin.com     日期:2025-01-14
C语言:设有说明语句:char a='\72';则变量a()

\72表示的是一个字符哦
\是转义符号,这里的72是八进制的,换成十进制为58
如果是\92那就是错误的,因为9已经超过8进制的取值范围。
1. 一般转义字符

这种转义字符,虽然在形式上由两个字符组成,但只代表一个字符。常用的一般转义字符为:�

\a
\v \b \f \\ \’ \”�

你可能已经发现,转义字符'\\'代表的反斜杠"\"、转义字符’\’’代表的字符"'"和转义字符'\”'代表的字符"”",其本身就是可显示字符,为什么还要对它转义呢?

这是因为它们的原有的字符形式已作它用,其中,单引号用作区分字符常量的括号,双引号用作区分字符串(下面将要介绍字符串)的括号,而反斜杠本身已用来表示转义字符的开头,因此必须对它们用转义字符重新声明。�

2. 八进制转义字符

它是由反斜杠'\'和随后的1~3个八进制数字构成的字符序列。例如,'\60'、'\101'、'\141'分别表示字符'0'、'A'和'a'。因为字符'0'、'A'和'a'的ASCII码的八进制值分别为60、101和141。

字符集中的所有字符都可以用八进制转义字符表示。

如果你愿意,可以在八进制数字前面加上一个0来表示八进制转义字符。�

3. 十六进制转义字符�

它是由反斜杠'\'和字母x(或X)及随后的1~2个十六进制数字构成的字符序列。例如,'\x30'、'\x41'、'\X61'分别表示字符'0'、'A'和'a'。因为字符'0'、'A'和'a'的ASCII码的十六进制值分别为0x30、0x41和0x61。

可见,字符集中的所有字符都可以用十六进制转义字符表示

a='\72' 是ASCII 码值,本来是二进制表示,由于二进制太长,所以用八进制,把3位二进制变成1位八进制

\72表示的是一个字符哦
\是转义符号,这里的72是八进制的,换成十进制为58
如果是\92那就是错误的,因为9已经超过8进制的取值范围。
1.
一般转义字符
这种转义字符,虽然在形式上由两个字符组成,但只代表一个字符。常用的一般转义字符为:
\a
\n
\t
\v
\b
\r
\f
\\
\’
\”
你可能已经发现,转义字符'\\'代表的反斜杠"\"、转义字符’\’’代表的字符"'"和转义字符'\”'代表的字符"”",其本身就是可显示字符,为什么还要对它转义呢?
这是因为它们的原有的字符形式已作它用,其中,单引号用作区分字符常量的括号,双引号用作区分字符串(下面将要介绍字符串)的括号,而反斜杠本身已用来表示转义字符的开头,因此必须对它们用转义字符重新声明。
2.
八进制转义字符
它是由反斜杠'\'和随后的1~3个八进制数字构成的字符序列。例如,'\60'、'\101'、'\141'分别表示字符'0'、'a'和'a'。因为字符'0'、'a'和'a'的ascii码的八进制值分别为60、101和141。
字符集中的所有字符都可以用八进制转义字符表示。
如果你愿意,可以在八进制数字前面加上一个0来表示八进制转义字符。
3.
十六进制转义字符
它是由反斜杠'\'和字母x(或x)及随后的1~2个十六进制数字构成的字符序列。例如,'\x30'、'\x41'、'\x61'分别表示字符'0'、'a'和'a'。因为字符'0'、'a'和'a'的ascii码的十六进制值分别为0x30、0x41和0x61。
可见,字符集中的所有字符都可以用十六进制转义字符表示

当要使用ASCII中不可视的控制字符时,不能直接用单引号括起的形式表示。必须采用在某些特定的字符前加反斜线"\"的方式表示。
'\ddd'
形式的转义字符代表一个字符(d表示一位十进制数,不允许出现8,9
即八进制数)
'\xhh'
形式的转义字符也代表一个字符
(h表示一位十六进制数)
这是一种规定

设有说明语句int x=35,B; char z='a ';则执行完下面的赋值语句后,B的...
解释如下:首先:定义B为整型变量,你并没有进行初始化,则其默认值为0;其次:执行语句时,这个语句主要是逻辑运算的一些组合, " ^ "是“异或”运算符,他说的就是"相异则或"(你可以这么望文生义的去理解),意思就是说:当它左右的变量按二进制逐位进行比较,如果不同则为真(C语言包里面...

设有说明语句:char x;,则正确输入x的格式符应该是?
格式符为 %c 代码运行如图所示,望采纳!

请问在单片机中,怎样用左移(右移)与简单逻辑运算实现循环左移(右移...
设有数据说明:unsigned char a,b;现要把a循环左移2位,可以用如下语句段完成:b=a>>(8-2);\/\/ 用来得到正常左移丢失的位和循环移位后其正确位置 a=a<<2; \/\/ 左移 a=a|b;=> a=(a<<2)|(a>>(8-2));...

c语言问题
1、C语言中,当没有特别说明时,为了告诉电脑某个数是采用的哪种进制,会使用0x、0表示十六进制和八进制的。当有特别说明时,就不需要使用0x、0来表示了。以你这个例子为例。当我要给一个变量赋值时可以这样写:char a = 10;char b = 0x10;赋值的时候如果我想告诉电脑我给他赋值的数是几进制...

C语言定义数组问题
10]可用,并不会对你的程序造成逻辑错误。如果愿意,可以再进一步挖掘一下:char a[10];char b[10];memset(b , 1 , 25);这个时候对b操作超过了实际b的长度,你会发现居然改到了a的内存区域!!呵呵,这就是stack overflow黑客最常用的攻击手段。上面的回复你认真揣摩,希望能对你有用 ...

设有如下定义: char *aa[2]={"abcd","ABCD"}; 则以下说法中正确的是...
答案为D *aa[2]数组指针 aa[0] aa[1]为数组名,分别为“abcd” "ABCD"的首地址也就是‘a’和‘A’的地址(详情参考指针那方面知识)A选项应该为“abcd”和“ABCD”的地址 B选项是指针,不是数组 C选项不是首地址 而是 “abcd”和“ABCD”的地址 ...

C语言:设有说明语句char *ps[3]={"hello","good","nice"},*p=ps[1...
p指向ps数组的第二个元素即字符串good。p+3指向good的第4个元素即d,因此*(p+3)的内容为'd'。

C语言:假设一个字符串中连续的若干数字字符可以认为是一个整数,现在给...
include<stdio.h> int main(){ char a[100];int i,n,sum,m,j;scanf("%d",&m);for(j=1;j<=m;j++){ \/\/gets(a);scanf("%s",a);sum=0;n=0;for(i=0;a[i]!='\\0';i++){ if(a[i]>='0' && a[i]<='9')n=n*10+a[i]-'0';else if(n!=0){ sum=sum+n;n...

9.设有说明 char s[]="ab\\0\\0678\\\\\\n98";则strlen(s)与sizeof(s)的值...
'\\\\'因为在C语言中'\\'是转义符所以\\\\就是将第二个\\转义出来也就是\\,占一个字节 上面的s[]里存的就应该是{'a','b','结束符','结束符','6','7','8','\\','换行符','9','8'} 所以strlen(s)的值为2 sizeof(s)的值为11 但是有些编译器会将ab后面第一个结束符吞掉,存进去...

2013计算机二级C语言完整预测试题及答案一
A)12 B)13 C)14 D)15 27.设有以下说明语句 typedef struct { int n; char ch[8]; } PER; 则下面叙述中正确的是 A)PER 是结构体变量名 B)PER是结构体类型名 C)typedef struct 是结构体类型 D)struct 是结构体类型名 28.有如下定义 struct person{char name[9];int age;}; struct person class...