一个人要想在某一方面有所成就,就必须有半年以上的时间,每天花 10 个小时“浸泡”在这件事情上,最终一定会有所收获。 c语言 关键字:
C语言也是一门通用性的语言,并没有针对某个领域进行优化,就目前而言,C语言主要用于较底层的开发,例如: Windows、Linux、Unix 等操作系统的内核90%以上都使用C语言开发; 开发硬件驱动,让硬件和操作系统连接起来,这样用户才能使用硬件、程序员才能控制硬件; 单片机和嵌入式属于软硬件的结合,有很多使用C语言的地方; 开发系统组件或服务,用于支撑上层应用; 编写PHP扩展,增强PHP的功能; 如果对软件某个模块(例如算法和搜索部分)的效率要求较高,也可以使用C语言来开发。 开发硬件驱动要学习数字电路,了解 Windows 或 Linux 内核,阅读硬件厂商的接口说明书; 从事嵌入式开发要学习数字电路、模拟电路、ARM、Linux、Qt等; 开发PC软件要学习Windows编程,了解 GTK 1.ANSI C、ISO C、C89、C90,要知道这些标准的内容都是一样的 2.c99 3.c11重点来啦(是否忽略空白符)
不忽略: #include <stdio.h> int main() { int a = 1, b = 2; scanf("a=%d", &a); scanf("b=%d", &b); printf("a=%d, b=%d\n", a, b); return 0; } a=99↙ a=99, b=2 a=99 b=200↙ a=99, b=2` a=99b=200↙ a=99, b=200(可以) scanf("%d", &b); a=100↙ 200↙ a=100, b=200重点二:刷新缓冲区
方法一:#include<unistd.h> fflush(stdout); 方法二:(使用 getchar() 清空缓冲区) int c; while((c = getchar()) != '\n' && c != EOF);下面例子 scanf("%*[^\n]"); scanf("%*c"); 正则表达*p++ 等价于 *(p++),表示先取得第 n 个元素的值,再将 p 指向下一个元素,上面已经进行了详细讲解。
*++p 等价于 *(++p),会先进行 ++p 运算,使得 p 的值增加,指向下一个元素,整体上相当于 *(p+1),所以会获得第 n+1 个数组元素的值。
(*p)++ 就非常简单了,会先取得第 n 个元素的值,再对该元素的值加 1。假设 p 指向第 0 个元素,并且第 0 个元素的值为 99,执行完该语句后,第 0 个元素的值就会变为 100
char str[] = "http://c.biancheng.net"; char *str = "http://c.biancheng.net"; 有!它们最根本的区别是在内存中的存储区域不一样,字符数组存储在全局数据区或栈区,第二种形式的字符串存储在常量区。全局数据区和栈区的字符串(也包括其他数据)有读取和写入的权限,而常量区的字符串(也包括其他数据)只有读取权限,没有写入权限。使用 $ gcc hello.c $ ./a.out Hello, World!