0:c语言的发展历史,贝尔实验室发明了c语言
1:c语言的优缺点:
2:c语言的应用领域:1.1:优点:
高效(可以直接访问内存,可以通过指针的方式直接操作内存)可移植(linux系统的底层就是c语言编写的,Android 的底层就是Linux,linux 又是c语言的),功能强大,灵活1.2:缺点:程序漏洞较多,难以理解,//相对于对象的java,难理解,难以维护,//一堆方法,萝卜开会
Linux操作系统,++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
嵌入式
计算机语言
机器人
工控领域
电影,3Dmax
计算机游戏
pc应用程序
第一个c语言程序
c语言的基本概念:
1:第一个C程序
2:程序的编辑,编译,连接和运行过程
3:程序排错和调试
4:变量
5:注释
6:标识符
7:关键字
8:数据类型
9:函数,
10:流程控制
11:案例:根据升高计算你的体重是否达标
0:首先是使用vim去编辑,
先创建一个HelloWorld.c 然后使用命令行工具去编译
注意这里是stdio而不是studio。不然会报错 HelloWorld.c:1:20: fatal error: studio.h: No such file or directory
#include <stdio.h>
int main(void){
printf("Hello World!\n");
return 0;
}
.h :代表是头文件的意思
stdio表示:standard buffered input&output 带缓冲的标准输入输出;
安装好了Command Line以后,gcc,gcc就是编译器
PS:苹果里面的cc和gcc其实都是链接到llvm-gcc的编译器,ll是lowlevel 底层,只要知道llvm 是苹果公司的编译器就可以了,其实cc和gcc都相当于是llvm-gcc的快捷方式
编译:可以通过gcc HelloWorld.c 也可以通过cc HelloWorld.c 来进行编译还可以制定生成的文件名:通过cc HelloWorld.c -o obj.o 会生成文件 obj.o运行:在苹果系统里面运行直接就是./obj.o
1:使用xcode去编辑
进入以后,选择第二个:Create a new Xcode project
然后选择OS X 里面的Application 里面的 Command Line Tool
输入Projcet Name-》HelloWorld,选择类型是c腌
选择制定的地址
点击左上角的三角进行编译
快捷键:
cmd+b 编译
cmd+r 运行
PS当新建文件的时候,可以选择是头文件还是c文件,还是c++w文件
一开始的时候可以推荐直接使用gcc来做,而不是xcode来做,就是为了练习
2: windows上面使用:
如何使用: http://jingyan.baidu.com/article/c275f6bacc0126e33c756771.html
下载 mingw-get-setup.exe
地址:https://sourceforge.net/projects/mingw-w64/files/latest/download?source=rw_typ_t5
1: 先touch 一个文件,然后可以通过open 命令来打开编辑软件编辑。
touch HelloWorld.c
open HelloWorld.c
2: 第一个C程序的详解:
#include <stdio.h>
int main(void){
printf("Hello World");
return 0;
}
//1.#include 的意思 预编译,预处理指令,可以理解为java 中的import
//2.stdio.h -》standard input output 标注输入输出 write read
// 从内存写到外围设备,从外围设备中读写 ,h->header
//3:<> "" 尖括号的意思是指的是:从系统路径搜索,如果是“” 那么就是从当前路径搜索
//4:int返回值和return 对应
//5: main 代表主函数的名称,也叫入口函数,命名必须是包括main 包括大小写,程序的入口从这里开始
//也是在main 函数结束。这个main 函数执行完了就结束了。
//如果主函数里面有一个while(1)的话是会一直执行,java 里面是不可以用非0来表示的。c语言里面可以的。
//6.参数
//int main()
//int main(void)
/**
#include <stdio.h>
int main(void){
printf("Hello World");
return 0;
}
*/
//int main(int argc,char * argv[]) 这个里面是一个指针数组
/**
#include <stdio.h>
//字符指针数组(字符串数组)
//argument count 参数数量argc
//argument variable 参数的变量argv
int main(int argc,char * argv[]){
for(int i=0;i<argc;i++){
printf("%s\n",argv[i]);
}
return 0;
}
*/
/**
运行的时候,gcc HelloWorld.c
例如生成了a.exe
运行a.exe 你好
结果如下:
C:\iOS\day02\demo>a.exe 你好
a.exe
你好
*/
//printf 打印输出,后面加上\n就会回车
//return 的返回值的意思
//还可以加入一个标准的类库:
//include <stdlib.h> 成功退出返回0,退出失败返回1
//在stdlib里面有两个宏定义
//#define EXIT_FAILURE 1
//#define EXIT_SUCCESS 0
/**http://zhidao.baidu.com/link?url=e0AgK3IuoChxC9Cv7vl3D0OacTUdj4DRf60XHTFti5goaquEzwZWR_G_22jWQO8BJ8zs30lA37_Ry-lZdBtTsK
宏定义和定义全局变量的区别:
1 作用时间不同。
宏定义在编译期间即会使用并替换,而全局变量要到运行时才可以。
2 本质类型不同。
宏定义的只是一段字符,在编译的时候被替换到引用的位置。在运行中是没有宏定义的概念的。而变量在运行时要为其分配内存。
3 宏定义不可以被赋值,即其值一旦定义不可修改,而变量在运行过程中可以被修改。
4 宏定义只有在定义所在文件,或引用所在文件的其它文件中使用。 而全局变量可以在工程所有文件中使用,只要再使用前加一个声明就可以了。换句话说,宏定义不支持extern。
*/
#include <stdio.h>
#include <stdlib.h>
int main(void){
printf("helloWorld\n");
return EXIT_SUCCESS;
}