黑马程序员----C语言基础语法篇

一.C语言是面向过程的高级语言,先学C是因为OC是对C不能面向对象的补充。C可以说是编程语言的母语,学好C很重要。

C程序是由程序段构成的,main函数是程序的入口,基本格式:

 

#include <stdio.h>

 

int main()

 

{

 

return 0;

 

}

 

1.编写代码

 

2.编译过程:

 

工具:clang编译器

 

要注意是否安装编译工具,测试方法:cc回车查看系统反馈的是no input files还是command not found

 

cc-c文件名.c编译成功后生成.o文件

 

3.链接 cc.文件o  把.o文件跟系统自带函数库链接在一起,生成可执行文件.(是否有main函数可执行,若无报错)

 

4.运行 命令:./a.out。

 

修改文件内容之后,一定要重新编译、连接、再运行。

 

其他clang指令

 

  1、更改可执行文件名称:cc  xx.o   -o   文件名

 

  2、一起编译、连接:cc   x1.c x2.cx3.c

 

创建文件的时候一般不要04“空格”第四个程序

 

需要的时候CC-C 04/第四个程序

 

 

 

常用Unix 命令小结:

 

touch 创建文件

 

open  打开文件

 

clear 清屏

 

ls 显示文件名

 

ls-l 显示详细列表

 

cd 目录转换

 

pwd 显示当前路径

 

rm 删除文件

 

mkdir 创建目录

 

rmdir 删除目录

 

cp 文档复制

 

cp file1 file2 将文档 file1 复制成 file2

 

cp file1 dir1 将文档 file1 复制到目录 dir1 下,文件名仍为 file1.

 

cp /tmp/file1 . 将目录 /tmp 下的文档 file1复制到现行目录下,

 

档名仍为 file1.

 

cp /tmp/file1file2 将目录 /tmp 下的文档file1现行目录下,档名

 

为file2

 

 

 

mv 文件移动 

 

例子:

 

mv file1 file2 将文档 file1,更改档名为 file2.

 

mv file1 dir1 将文档 file1,移到目录 dir1 下,档名仍为 file1.

 

mv dir1 dir2 若目录 dir2 不存在,则将目录 dir1,及其所有档

 

案和子目录,移到目录 dir2 下,新目录名称为 dir1.

 

 

 

二.常用的关键字:了解即可。记得都是小写。在X-CODE中为紫褐色

 

  auto double int struct break else long switch

 

  case enum typedef char return union

 

  const float short unsigned continue for void

 

  goto sizeof do if while static

 

  三.变量命名:字母,数字,下划线。但是数字不能是开头的。变量名字一定要有意义的起名字通俗易懂是第一要素。

 

四.注释为绿色文字且分两种,

(1)单行注释// (2)多行注释/*

 

不可以//  */

 

Printf(“//itcast”);输出//itcast。

 

  注释作用为:1,程序员之间的交流 2,检查代码错误 3,回顾与复习

 

  五. 数据的分类

 

  计算机中存储的数据可以分为两种:静态数据和动态数据。

 

  静态数据:一些永久性数据,存放在硬盘中,一般比较大。以文件形式存放在硬盘,如文档、照片、视频等,存储时间长,不易丢失。

 

  动态数据:也叫临时数据,是指在程序运行过程中,动态产生的临时数据,存储在内存中。如运行的软件产生的各种数据,存储有生命周期,在软件关闭或计算机强制性关闭时消失。

 

  数据转换:用软件打开静态数据就是一个简单的实现从硬盘中取出数据到内存中的动静态转换。

 

  六.数据类型

 

  空类型 :void

 

  指针类型 :  void*

 

  构造类型  :  数组、struct(结构体)、union(共用体)、enum(枚举)

 

  基本数据类型   : int(整型)、char(字符型)、浮点型 float(单精度浮动型)double(双精度浮点型)。

 

  (1)常量就是确定的数

 

  1,整型(int)

 

  2.浮点型

 

  (1)float 单精度,精准度为7位

 

  为了跟double区分开来,float 型数据都是以f结尾的,比如5.43f、-2.3f、0.0f。不允许有10f非小数的情况。

 

  (2)double 双精度 精准度高为16位,实型变量默认双精度。

 

  3.字符(char)

 

  用单引号将一个数字(0~9)或一个英文字母(a~z、A~Z)或一个其他符号(+、-、!、?等)括起来,这样构成的就是字符常量。比如'6'、'a'、'F'、'+'等。

 

  注:单引号只能括住1个字符,而且不能是中文字符,下面的写法是错误的:'abc'、'123456'、'男'。

 

  4.字符串

 

  将一个或者多个字符用双引号("")括起来,这样构成的就是字符串常量。比如"6"、"男"、"abc".

 

  (2)变量就是经常改变或者不确定的数

 

  1.注意和目的:变量首先要定义 ,目的是开辟空间存储数据。

 

  2.格式为:变量类型 变量名

 

  3.赋值

 

  第一次赋值,可以称为“初始化”

 

  初始化的两种形式

 

  先定义,后初始化:int a; a = 10;

 

     定义的同时进行初始化:int a = 10;

 

 

 

  4.修改

 

  (1)修改即是覆盖。

 

  l 使用printf输出一\多个变量的值

 

  int a = 10, c = 11;

 

  printf("a=%d, c=%d", a, c);

 

   double\float\char的输出,格式符的一些小技巧

 

  double height = 1.55;

 

  char blood = 'A';

 

  printf("height=%.2f, 血型是%c",height, blood);//输出小数点后几位就点几位(例如.5f).

 

  l 简单的加减操作

 

  int a = 10 + 20;

 

  l 没有初始化时不要拿来使用(下面的写法是不建议的)

 

  int score;

 

  printf("score=%d", score);

 

  变量之间值的传递

 

  l. 可以将一个变量的值赋值给另一个变量

 

  int a = 10;

 

  int b = a;

 

  2. 连续赋值

 

  a = b = 10;

 

  注意变量的声明创建和释放过程

 

代码块作用域 { int a = 10; }.在代码块结束后,变量a自动释放。

 

 

 

  七.变量内存分析

 

  1.内存以字节为单位

 

  2.不同类型所占字节数

 

 

16位编译器

32位编译器

64位编译器

char

1

1

1

int

2

4

4

float

4

4

4

double

8

8

8

 

  3.地址符&

 

  查看内存地址:

 

  int a;

 

  printf("a的地址是:%p\n",&a);p是指针

 

  4.变量实例

 

   int b =10;

 

    int a = 20;

 

   # 内存由大到小寻址,优先分配内存地址较大字节给变量。b的内存地址比a大;因为b先定义的

 

   # 每个变量都有地址:第一个字节的地址就是变量的地址;

 

  八.scanf 函数

 

  1.stdio.h中声明的一个函数,因此使用前必须加入#include

 

  2.简单用法

 

  int age;

 

  scanf("%d", &age);

 

  输入完毕后,敲一下回车键

 

  在接收多个数值的时候有分隔符:逗号,特殊字符,空格等

 

  用scanf函数接收3个数值,每个数值之间用空格隔开

 

  scanf("%d %d %d", &a, &b, &c);

 

  3个%d之间是用空格隔开的,我们在每输入一个整数后必须输入一个分隔符,分隔符可以是空格、tab、回车

 

  scanf的第一个参数中不要包含\n,比如scanf(“%d\n”, &a); 这将导致scanf函数无法结束

 

posted on 2015-04-19 10:43  程序小白猿  阅读(135)  评论(0)    收藏  举报

导航