黑马程序员技术交流社区
标题: C语言基础语法 [打印本页]
作者: 流转少年 时间: 2015-3-28 11:34
标题: C语言基础语法
C语言基础语法
一、学习软件开发,需要积累,不是一蹴而就的事情。
1、计算机简单了解:
1)硬件:硬盘、内存、CPU
2)计算机只能识别0(关)、1(开)
3)软件:就是指指令的集合
4)开发软件:写出控制计算机的指令
2、计算机语言
1)机器语言:由0、1组成;优点:能直接被计算机识别;缺点:可读性差,容易出现错误,对机器依赖性较强,可复制性低。
2)汇编语言:由英文符号组成;优点:可直接访问硬件;缺点:对机器依赖性强,可移植性差,符号太多,难以调试;用途:驱动,加解密,病毒,程序调试,破解软件,游戏
3)高级语言:高级语言又分为面向对象和面向过程;由接近自然语言的英语组成;优点:简单,易于理解,语法类似英语,远离硬件,可移植性强;缺点:不能被计算机直接识别,需要编译器进行编译;使用种类:C,C++,C#,Java,Objective-C等,用来写外挂软件
3、C语言简介
1)先学习C语言是因为C语言是OC的基础
2)OC和C的思想和语法有很多不一样的地方,但是OC和C又能够混用
3)C是高级语言的基础
4)C于1972年发明,首次用于重写UNIX系统
5)特点:1、丰富的运算符;2、丰富的数据类型;3、可以直接操作硬件;4、高效的目标代码;5、可移植性强
6)主要用途:1、编写系统软件,图形处理,单片机程序;2、编写游戏外挂;3、编写Android、iOS程序
4、第一个C语言程序
1)写代码工具:xcode:简化开发过程,有高亮显示
2)新建.c文件:打开Xcode---file----new---file---Cand C++---C file
3)用终端新建.c文件。touch命令
4)C程序是由函数段组成,每个函数都是拥有自己相应的功能的程序段,根据函数名可以调用对应函数执行相应功能。
5)C程序的入口函数:main主函数
6)函数编写格式:
函数类型 函数名(形式参数) //形式参数可以没有
{
函数主体;
return 0;//不要忘记写分号
}
注意:函数编写时,必须要使用英文,切忌用中文标点符号。
代码:
- #include <stdio.h>
- int main()
- {
- printf(“我的第一个C程序\n”);
- return 0;
- }
复制代码
运行结果:我的第一个C程序
运行过程:使用cc –c xxx.c命令编译;cc xxx.o命令链接;cc xxx.c命令编译链接一起。
编译的作用是把代码翻译成0和1,只会检测语法是否合理,不会检测函数是否有定义。工具:clang;生成.o文件
链接的作用就是把.o文件与系统自带的函数库合并在一起,生成一个.out可执行文件,会严格检查是否有函数定义
注意:如果在main函数中调用别的函数,则必须在调用前进行生命
运行:终端命令./xxx.out
5、第二个C程序
- #include <stdio.h>
- int main()
- {
- printf(“***************”);
- printf(“*****itcast*****”);
- printf(“***************”);
- return 0 ;
- }
复制代码
字符太多,续接一楼
作者: 流转少年 时间: 2015-3-28 11:35
6、初学者常见错误
1)、主函数main()后面不加“;”,只有在大括号里面的语句才需要一行一个分号(循环结构另说)
2)、双引号外部的所有内容必须是英文符号。
3)、通过编译时提示的行号寻找错误
4)、没有#include <stdio.h>,编译通过会有警告,链接能成功,运行也能成功
5)、在printf函数内部,一定要用英文双引号括住要输出的内容
6)、引用绝对路径进行编译的时候,生成的.o文件在当前路径下
7、UNIX指令补充
1)绝对路径:从根目录开始找 cd /xxx
2)相对路径:从当前目录开始找 cd xxx
3)更改可执行文件.out名称
在链接的时候更改: cc –c .o –o xxx
在编译链接同时进行时更改:cc .c -o xxx
4)使用touch命令新建文件时,不能用空格作为文件名内部的连接符
5).c是源文件;.o是目标文件;.out是可执行文件
6)程序不能没有main主函数,如果没有,可以编译成功,但是不能链接成功
7)一个程序不允许有两个主函数,或者是两个名称相同的函数
8)写代码的时候要以可读性为主,先保证可读性为前提。
8、关键字
关键字是系统指定的32个具有特殊含义的字符,都是小写。
9、标识符
标识符是程序员在编写程序时自定义的名称
命名规则:1)只能由26个英文字母大小写,10个阿拉伯数字,下划线组成;2)不能用关键字作为标示符;3)不能以数字开头;4)尽量取有意义的名称;5)如果出现一个标示符内有多个单词的时候,从第二个单丝开始,首字母大写,或用下划线连接
10、注释
注释用来解释代码的作用,可以使英文、中文等,在编译的时候不参与编译。有单行注释“//”,和多行注释“/* */”。
注释可以用来检查代码的作用,可以查错;
使用注意:单行注释可以嵌套单行注释;多行注释可以嵌套单行注释;多行注释不可以嵌套多行注释
11、数据
数据分为静态书据和动态数据
静态数据:一般储存在硬盘中,时间长,以文件形式存在
动态数据:程序运行过程中产生的临时数据,一般存储在内存中,关机后消失
单位进制:
bit(8)---byte(1024)-----KB(1024)----MB(1024)-----GB(1024)----TB
C语言中基本数据类型
1)基本数据类型:int(整型) char(字符型) (float(单精度)、double(双精度))浮点型
2)构造类型(多个基本数据类型构造而成):数组、结构体(struct)、共用体(union)、枚举(enum)
3)指针: void *
4)空类型: void
12、常量、变量
常量表示一些固定的值
变量表示一些不固定的值,给变量赋值时用赋值符号“=”,第一次赋值叫做初始化。只要有不确定的值就要定义变量
变量的输出:1)输出函数用printf();
2)格式化输出:占位符:%d %i输出整型;%f输出小数;%c输出字符;%s输出字符串;%p输出地址,&是取地址符号
格式:printf(“%d”,a);
变量在函数中的作用域:从定义函数的那行代码开始一直到函数结束。
根据变量的作用域不同可以分为:全局变量和局部变量
用”{}”限制变量的作用域
13、两个变量的值互换
1)借助第三方变量
#include <stdio.h>
int main()
{
int a,b,temp;
a = 9;
b=10;
temp = a;
a = b;
b = temp;
printf(“a=%d,b=%d\n”,a,b);
return 0;
}
2)不借助第三方变量
#include <stdio.h>
int main()
{
int a,b;
a = 9;
b =10;
a = b – a;
b = b – a;
a = b + a;
printf(“a=%d,b=%d\n”,a,b);
return 0;
}
14、scanf函数
格式:scanf(“%d”,&a); 不要忘记地址符号
变量储存在内存中,是按照内存地址从大到小寻址存入
scanf在同时接受多个变量时,要用分隔符分开,切忌在scanf函数中使用\n换行符
15、代码
提示用户输入两个整数,输出两个整数的和
#include <stdio.h>
int main()
{
int a, b;
printf(“请输入两个整数,并用逗号隔开:\n”);
scanf(“%d,%d”,&a,&b);
int sum = a + b;
printf(“%d + %d = %d\n”,a,b,sum);
return 0;
}
本文纯手打,避免不了有些马虎出现的错误,如有错误敬请指正!谢谢!
作者: GO_monster 时间: 2015-3-28 11:53
谢谢分享
作者: 波阿波 时间: 2015-3-28 12:38
楼主好人!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |