【C语言学习】:C语言补充:转义字符,<<,>>操作符,IDE

🎁个人主页:我们的五年https://blog.csdn.net/djdjiejsn?type=blog****

🔍系列专栏:C++课程学习https://blog.csdn.net/djdjiejsn/category_12617142.html****

🎉欢迎大家点赞👍评论📝收藏⭐文章

C语言学习笔记:

https://mp.csdn.net/mp_blog/manage/column/allColumnList

前言:

虽然说C语言的期末考试,平时的小考都是满分,但是那基本都是刷题,上机形式,考察的内容比较局限,很多细节小的东西考不到。到现在寒假有机会复习复习。

目录

1.转义字符:

1.1理解:

1.2转义字符的分类:

⛳️字符原来的意思:

⛳️特殊含义:

⛳️特殊表示:

题目:

2.C语言补充:

2.1各类IDE(继承开发环境)用的编译器:

2.2main函数可以放在任意位置:

2.3sizeof不是函数,是关键词。

2.4早期C语言注释风格的局限性:

2.5早期布尔类型:

2.6最大值表示:

3<<,>>操作

3.1正数:

3.2负数:


1.转义字符:

这部分内存那时候刚刚大一听的时候,就比较一下把它过掉了,没有认真记一下理解一下。现在就好好讲一下。

1.1理解:

转移字符:

在字符串中,字符中,如果我们只是正常的abcdef,就表示字母的abcdef。这是普通的字符。

但是转移字符是什么意思呢?就是转变原来的意思,一开始a就表示字母a,但是加上****\****以后,就转变了意思,变成了警报的意思。

如果想听听电脑的警报是什么声音,就把这段代码放电脑上跑一下吧。

cpp 复制代码
#include <stdio.h>
int main()
{
	printf("\a");
	return 0;
}

1.2转义字符的分类:

⛳️字符原来的意思:

\?

在如今的电脑上,我们在字符串中输入?,确实是表示问号的意思,但是之前比较早的时候,要\?才能表示?,不然就表示为其他意思了。

为了保证代码的不同平台的同样性,输出?尽量为\?

早的时候,??)表示的是

\' \" \\

这些都是表示字符**' " \**

为什么要这样呢,因为在字符串中"可能表示的是一个字符串的开始表示或者结束标志,所以\"就让编译器不要认为它是字符串的开始或者结束,同样' \也是这样的理由。

cpp 复制代码
#include <stdio.h>
int main()
{
	printf("\?");
	printf("\n");

	printf("\'");
	printf("\n");

	printf("\"");
	printf("\n");

	printf("\\");
	return 0;
}

⛳️特殊含义:

\a 表示电脑的警报。

\b 表示光标回退一个字符,但是不删除字符。

\f 换页符。

\n 换行符。光标移动到下一行最开始。

\r 回车符。光标移动到同一行的最开始。

\v 垂直分割符。

\t 制表符,让光标移动到下一个水平制表位,通常是8的倍数。

在VS Vsiual中普通字符和转移字符的颜色也是不一样的。

cpp 复制代码
#include <stdio.h>
int main()
{
	printf("a");

	printf("\a");
	printf("\b");
	printf("\f");
	printf("\t");
	printf("\v");
	printf("\n");
	printf("\r");
	return 0;
}

⛳️特殊表示:

\ddd 三个d表示八进程数,和十进程一样,权重不一样。具体的意思就是这个三个八进程的三位数表示的大小,对应的ASCII表中的字符。

A的ASCII码是65.

101:1*8*8+0*8+1*8=65,数字乘以权重。

\xdd 这两个d表示的就是16进程数。含义和上面一样。

为什么要这么设计,因为三个八进程可以表示超过所有ASCII表中的字符,两个16进程数可以表示完这128个ASCII字符。

特别注意的就是,这些转义字符只占一个字符位置,为一个整体,一个字节。

题目:

cpp 复制代码
printf("%d\n", strlen("c:\test\121"));

输出的结构是:7.。


2.C语言补充:

下面就是关于C语言的一些补充。

2.1各类IDE(继承开发环境)用的编译器:

VS(visual studio):msvc。

XCode(苹果编译器):clang。

DevC++,CodeBlockS:gcc。

clion:cmake。

2.2main函数可以放在任意位置:

出乎意料的是还能放在库函数前面。main函数有且只有一个,这肯定都是知道的。

2.3sizeof不是函数,是关键词。

返回的类型为size_t,单位字节。

2.4早期C语言注释风格的局限性:

/**\是早期的C语言注释形式。每一个/*遇到*\就会停止,比较局限。

//是C++的注释形式。

2.5早期布尔类型:

_Bool.

cpp 复制代码
#define bool _Bool
#define true 1
#define false 0

2.6最大值表示:

SCHAR_MIN , SCHAR_MAX :signed char 的最⼩值和最⼤值。
• SHRT_MIN , SHRT_MAX :short 的最⼩值和最⼤值。
• INT_MIN , INT_MAX :int 的最⼩值和最⼤值。
• LONG_MIN , LONG_MAX :long 的最⼩值和最⼤值。
• LLONG_MIN , LLONG_MAX :long long 的最⼩值和最⼤值。
• UCHAR_MAX :unsigned char 的最⼤值。
• USHRT_MAX :unsigned short 的最⼤值。
• UINT_MAX :unsigned int 的最⼤值。
• ULONG_MAX :unsigned long 的最⼤值。
• ULLONG_MAX :unsigned long long 的最⼤值。


3<<,>>操作

3.1正数:

不管<<,还是>>都是补0,左移右边补0,右移左边补0.

3.2负数:

对补码进行操作。

<<还是补0.

>>右移,算术运算补1,逻辑运算还是补0。

|------|----------------------------------------|
| << | 正数,负数都是右边补0。正数补码为本身。 |
| >> | 正数,负数逻辑运算,左边补0,负数算术运算补1.负数对补码进行操作。 |

具体可以用代码进行验证。doge

相关推荐
Yu_Lijing1 分钟前
【个人项目】C++基于websocket的多用户网页五子棋(上)
开发语言·c++·websocket
脏脏a1 分钟前
【初阶数据结构】栈与队列:定义、核心操作与代码解析
c语言·开发语言
济宁雪人2 分钟前
Java安全基础——序列化/反序列化
java·开发语言
q***01773 分钟前
Java进阶--IO流
java·开发语言
lsx2024063 分钟前
C语言中的枚举(enum)
开发语言
LO嘉嘉VE5 分钟前
学习笔记二十二:神经网络的几起几落
笔记·神经网络·学习
小马爱打代码8 分钟前
Spring Boot:DTO、VO、BO、Entity 的正确工程化分层
java·spring boot·后端
csbysj20209 分钟前
PHP Math
开发语言
The_cute_cat10 分钟前
Vim的初步学习
学习·编辑器·vim
u***B79210 分钟前
Spring Boot实时推送技术详解:三个经典案例
spring boot·后端·状态模式