🎁个人主页:我们的五年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,但是加上 \ 以后,就转变了意思,变成了警报的意思。
如果想听听电脑的警报是什么声音,就把这段代码放电脑上跑一下吧。
#include <stdio.h>
int main()
{printf("\a");return 0;
}
1.2转义字符的分类:
⛳️字符原来的意思:
\?
在如今的电脑上,我们在字符串中输入?,确实是表示问号的意思,但是之前比较早的时候,要\?才能表示?,不然就表示为其他意思了。
为了保证代码的不同平台的同样性,输出?尽量为\?
早的时候,??)表示的是】。
\' \" \\
这些都是表示字符' " \
为什么要这样呢,因为在字符串中"可能表示的是一个字符串的开始表示或者结束标志,所以\"就让编译器不要认为它是字符串的开始或者结束,同样' \也是这样的理由。
#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中普通字符和转移字符的颜色也是不一样的。
#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字符。
特别注意的就是,这些转义字符只占一个字符位置,为一个整体,一个字节。
题目:
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.
#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