移动网站开发工具,百度关键词规划师工具,网站页面策划怎么做,做网站使用什么语言好本人准备考研#xff0c;现在开始每天更新408的内容#xff0c;目标这个月结束C语言和数据结构#xff0c;每天更新~ 一.再次认识c语言
C语言是一门通用计算机编程语言#xff0c;广泛应用于底层开发。C语言的设计目标是提供一种能以简易 的方式编译、处理低级存储器、产生…本人准备考研现在开始每天更新408的内容目标这个月结束C语言和数据结构每天更新~ 一.再次认识c语言
C语言是一门通用计算机编程语言广泛应用于底层开发。C语言的设计目标是提供一种能以简易 的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语 言。 尽管C语言提供了许多低级处理的功能但仍然保持着良好跨平台的特性以一个标准规格写出的 C语言程序可在许多电脑平台上进行编译甚至包含一些嵌入式处理器单片机或称MCU以及超 级电脑等作业平台。 二十世纪八十年代为了避免各开发厂商用的C语言语法产生差异由美国国家标准局为C语言制 定了一套完整的美国国家标准语法称为ANSI C作为C语言最初的标准。 [1] 目前2011年12月8 日国际标准化组织ISO和国际电工委员会IEC发布的C11标准是C语言的第三个官方标 准也是C语言的最新标准该标准更好的支持了汉字函数名和汉字标识符一定程度上实现了汉 字编程。 C语言是一门面向过程的计算机编程语言与CJava等面向对象的编程语言有所不同。 其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等
1.第一个c语言程序
#include stdio.h
int main()
{printf(hello bit\n);printf(he he\n);return 0;
}
//解释 //main函数是程序的入口 //一个工程中main函数有且仅有一个
2.数据类型
char //字符数据类型
short //短整型
int //整形
long //长整型
long long //更长的整形
float //单精度浮点数
double //双精度浮点数
C语言没有字符串类型C有string类
每个类型的大小
#include stdio.h
int main()
{printf(%d\n, sizeof(char));printf(%d\n, sizeof(short));printf(%d\n, sizeof(int));printf(%d\n, sizeof(long));printf(%d\n, sizeof(long long));printf(%d\n, sizeof(float));printf(%d\n, sizeof(double));printf(%d\n, sizeof(long double));return 0;
} 3.变量与常量 3.1全局变量与局部变量
#include stdio.h
int global 2019;//全局变量
int main()
{int local 2018;//局部变量//下面定义的global会不会有问题int global 2020;//局部变量printf(global %d\n, global);return 0;
}
总结 上面的局部变量global变量的定义其实没有什么问题的 当局部变量和全局变量同名的时候局部变量优先使用。 3.2作用域与生命周期 作用域 作用域scope是程序设计概念通常来说一段程序代码中所用到的名字并不总是有效/可用 的 而限定这个名字的可用性的代码范围就是这个名字的作用域。 1. 局部变量的作用域是变量所在的局部范围。 2. 全局变量的作用域是整个工程。 生命周期 变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段 1. 局部变量的生命周期是进入作用域生命周期开始出作用域生命周期结束。 2. 全局变量的生命周期是整个程序的生命周期。
3.3常量类型 C语言中的常量和变量的定义的形式有所差异。 C语言中的常量分为以下以下几种 字面常量 const 修饰的常变量 #define 定义的标识符常量 枚举常量 #include stdio.h
#include stdio.h
//举例
enum Sex
{
MALE,
FEMALE,
SECRET
};
//括号中的MALE,FEMALE,SECRET是枚举常量
int main()
{//字面常量演示3.14;//字面常量1000;//字面常量//const 修饰的常变量const float pai 3.14f; //这里的pai是const修饰的常变量pai 5.14;//是不能直接修改的//#define的标识符常量 演示
#define MAX 100printf(max %d\n, MAX);//枚举常量演示printf(%d\n, MALE);printf(%d\n, FEMALE);printf(%d\n, SECRET);//注枚举常量的默认是从0开始依次向下递增1的return 0;
}
注 上面例子上的 pai 被称为 const 修饰的常变量 const 修饰的常变量在C语言中只是在语法层面限制了 变量 pai 不能直接被改变但是 pai 本质上还是一个变量的所以叫常变量。
4. 字符串转义字符注释
4.1字符串
hello bit.\n
这种由双引号Double Quote引起来的一串字符称为字符串字面值String Literal或者简称字符串。 注字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志不算作字符串内容。
#include stdio.h
//下面代码打印结果是什么为什么突出\0的重要性
int main()
{char arr1[] bit;char arr2[] {b, i, t};char arr3[] {b, i, t \0};printf(%s\n, arr1);printf(%s\n, arr2);printf(%s\n, arr3);return 0;
}
arr1和arr3可以正常输出bit但是arr2在输出bit后可能还会出现一些乱码因为在内存中他的地址往后访问还要找“\0”才能结束。
4.2 转义字符 加入我们要在屏幕上打印一个目录 c:\code\test.c 我们该如何写代码
#include stdio.h
int main()
{
printf(c:\code\test.c\n);return 0;
实际上程序运行的结果是这样的
这里就不得不提一下转义字符了。转义字符顾名思义就是转变意思。 #include stdio.h
int main()
{//问题1在屏幕上打印一个单引号怎么做//问题2在屏幕上打印一个字符串字符串的内容是一个双引号“怎么做printf(%c\n, \);printf(%s\n, \);return 0;
}
问题
//程序输出什么
#include stdio.h
int main()
{printf(%d\n, strlen(abcdef));// \62被解析成一个转义字符printf(%d\n, strlen(c:\test\628\test.c));return 0
}
答案是输出6和14因为\t,\62,\t被当成转义字符只算一个字符了。
尤其要注意的是\DDD和\XDD这两个转义字符既然是字符我们知道计算机存字符unsigned char类型的数据范围是0-255那么表示的asc码值也应该在255内所以即使使用\DDD存数据最大也不能超过\4008进制400等于十进制256。
另外一定记住\DDD和\XHH所表示的意思\DDD是将\后三个八进制数字对应的十进制数字的ASC码值所存储也就是说这个转义字符真正是一个ASC码值同理\XHH是两个十六进制数字所对应的十进制数字的ASC码值所存储。如果遇到了不满规则的数字则会直接忽略
比如
#include stdio.h
#include string.h
int main()
{char s[] \x1h\018;printf(字符总数%d\n, strlen(s));printf(字符串%s\n, s);return 0;
} /输出结果为: 字符总数4 字符串h8 输出为 \x1 、 h 、 \01 、 8 各被解释为一个字符共4个字符
十六进制的数字范围为 0~9,a~f
八进制的数字范围为 0~7 h 和 8 超过了各自进制的数字范围
再比如说
#include stdio.h
#include string.h
int main()
{char s[] \1007;printf(字符总数%d\n, strlen(s));printf(字符串%s\n, s);return 0;
} //输出结果 字符总数2 字符串7 输出的字符串是7因为\100所对应的十进制为64在ASC码值中对应字符。
4.3. 注释 1. 代码中有不需要的代码可以直接删除也可以注释掉 2. 代码中有些代码比较难懂可以加一下注释文字 注释有两种风格 C语言风格的注释 /*xxxxxx*/ 缺陷不能嵌套注释 C风格的注释 //xxxxxxxx 可以注释一行也可以注释多行。