C语言介绍
我们不多逼逼,直接上 !!!
C语言属于编译型语言 (计算机语言分类)
C语言 运行的过程:
编译成 *.obj (编译器 把 *.c 文件 编译成 *.obj文件)
连接成 *.exe (链接器 把 *.obj 文件 链接成 *.exe文件)
C程序的一般 组成 (非全面的):
标号语句
复合语句
表达式语句
选择语句
迭代语句
跳转语句
关键字
标识符
运算符
数据
1 .#include 指令和头文件
#include
上面的语句的作用相当于把stdio.h文件中的所有内容都输入该行所在的位置。
实际上。这是一种“拷贝——粘贴”的操作。
#include
这是一条预处理器指令
2 . main()函数
main的标准写法void main(void)
3 .注释
// 这里是注释
/*
这里是注释
*/
4 .花括号、函数体和块
{
...
}
5 .声明
要使用 某变量 、 某函数 或结构体等 必须先声明后才能调用
实际数据长度(非标准长度!!! 视环境与机器 而定论 具体情况具体分析):
讨论 “__int64 与long long 的区别”(无兴趣可以无视):
https://blog.csdn.net/shiwei408/article/details/7463476
__int64 类型的输入与输出:
#include
void test__int64IO();
void main(void){
test__int64IO();
}
void test__int64IO(){
// 测试 __int64 类型的 输入 输出
__int64 x ;
printf("请输入一个整数:");
scanf("%I64d",&x);
printf("%I64d\n",x);
}
6 .赋值
7 .printf() 函数
它是一个标准的输出函数
8 .return 语句
为提高可读性,我们还是要保持写return语句的习惯
int main(void){
...
return 0;
}
基本数据类型
整型:
ISO C规定int的取值范围最小为-32768~32767。这句话没有毛病它说的是最小,不是最大的规定!
不过,随着技术的发展,现在的个人计算机常见的是,long long占64位、long占32位、short占16位、int占16位或32位(依计算机的自然字长而定)。
原则上,这4种类型代表4种不同的大小,但是在实际使用中,有些类型之间通常有重叠(大小重叠 如下图的int long大小是重叠的)。
C 标准对基本数据类型只规定了允许的最小大小。
对于16位机,short 和 int的最小取值范围是[-32768,32767];
对于32位机,long的最小取值范围是[-2147483648,2147483647,];
对于unsigned short 和 unsigned int ,最小取值范围是[0,65535];
对于unsigned long ,最小取值范围是[0,4294967295];
long long类型是为了支持64位的需求(c99中的新定义的标准),最小取值范围是[-9223372036854775808,9223372036854775807]
usigned long long 的最小取值范围是[0,1844674407370955161]
参考:https://blog.csdn.net/tenlee/article/details/44997015
进制数:
八进制用0表示前缀010
表示十进制的8、或者是000010
其实还是10进制的8
十六进制 用0x、0X表示前缀0x0021
表示的是十进制的33、0X101
表示的是257
程序
#include
#include
void testBases(void);
void main(void){
testBases();
}
void testBases(void){
int x = 100;
printf("%#o,%d\n",010,010);
printf("%#x,%d\n",0x10,0x10);
printf("%d\n",0x0021);
printf("%d\n",0x00101);
printf("十进制=%d; 八进制=%o; 十六进制=%x;\n",x,x,x);
printf("带符号 #\n十进制=%#d; 八进制=%#o; 十六进制=%#x;\n",x,x,x);
}
printf("%ld,%ld,%ld\n",5ul,5UL,5Lu);
u、l 大小写都可以,表示的意思都是一样的
u 表示的是无符号
l 表示的是长整型
char类型用于存储字符,但是从技术层面看,char是整数类型。
因为char类型实际上存的是整数而不是字符。
计算机使用数字编码来处理字符,即用特定的整数表示特定的字符。
最常用的是ASCII编码。
char类型只占用一个字节。
奇怪的是,C语言将字符常量视为int类型而非char类型。
例如在Int为32位、char为8位的ASCII系统中,有下面的代码:
char grade = 'B';
本来’B’对应的数值66存储在32位的存储单元中,现在却可以存储在8位的存储单元中(grade)。也就是说char只取int存储单元中的后面8位(1字节),前面24位不取(3字节)。
char grade = 'B';
printf("字符:%c ; 变量长度:%d; 常量长度:%d; \n",grade,sizeof(grade),sizeof('B'));
利用字符常量的这种特性,可以定义一个字符常量’FATE’,即把4个独立的8为ASCII码存储在一个32位存储单元中。如果把这样的字符赋给char类型变量grade,只取最后8位。因此grade的值是’E’。
如下:
char grade = 'FATE';
printf("%c\n",grade);
考试的时候很容易出现这样的大坑…很难受
转义字符
字符 | 含义 |
---|---|
\a | 警报(ANSI C) |
\b | 退格 |
\f | 换页 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
\ | 反斜杠(\) |
; | 单引号(’) |
" | 双引号(") |
? | 问号(?) |
\0oo | 八进制(oo必须是有效的八进制数,即每个 o可表示0~7中的一个数) |
\xhh | 十六进制(hh必须是有效的十六进制数,即每个h可表示0~f中的一个数) |
1