一---c语言基础

来源:互联网 发布:唯品会 淘宝客 编辑:程序博客网 时间:2024/05/17 07:27


1,第一个c语言程序

c语言是经典的计算机编程语言,很多其它的高级编程语言都是由c语言衍生的,例如c++,c#,oc等,要想从事ios开发,c语言和oc是很重要的基础。

第一个c语言程序:

#include <stdio.h>int play(){    return 0;}int main(){    play();    printf(“第一个c语言程序”);}

在这个最简单的c语言程序中,#include <stdio.h>的作用是为了后面使用printf语句,int play(){}和int main(){}包括大括号里面的内容叫做函数,其中main是主函数,是系统运行程序的入口,在主函数中用play();调用了外部的play函数,printf(“第一个c语言程序”);这句话可以在屏幕上输出一句话。

程序编写完后保存的文件后缀名.c,是c语言的源文件。要对源文件进行编译,使用到编译工具clang编译器,并安装命令行工具,编译的指令是在终端中输入:cc –c 文件名.c,编译成功会生成一个.o文件,这时候计算机就把我们写的代码转换成了它能看懂的语言。再进行链接,指令是:cc 文件名.o,链接会把.o目标文件跟系统自带的函数库合并在一起生成一个可执行文件:a.out,我们就可以用指令运行可执行文件了:/a.out。编译和链接可以合并成一步进行,指令是:cc 文件名.c。

Mac系统可以在终端输入一些UNIX指令来操作Mac,常用到的UNIX指令有:

ls –l       列出当前目录下的所有内容

pwd       显示当前目录的名称

cd          改变当前操作的目录

who       显示当前用户名

clear      清屏

mkdir     新建一个目录

touch     新建一个文件

open      打开一个文件或文件夹

2,c语言中的关键字

关键字是c语言提供的有特殊含义的符号,也叫做保留字,c语言一共提供了32个关键字:

auto  double  int struct  break  else long  swich  case enum  register  char extern  return  union const  float  short unsighed  continue  for signed  void  default goto  sizeof  volatile do  if  while static

3,标识符

我们经常需要用到标识符,比如定义变量名,建立对象,建立类,定义函数等等。标识符就相当于名字,我们操作一些东西就免不了给要操作的东西起名字,c语言中的标识符有自己的命名规则:

只能由26个英文字母大小写,10个阿拉伯数字0~9,和下划线_组成。标识符严格区分大小写,不能用数字开头。注意不能用关键字作为标识符。

4,注释

当代码比较复杂比较长时,为了方便其他程序员对自己写的代码惊醒理解和修改,我们要在一些地方进行注释,解释这些代码起到了哪些作用,相当于对自己写的代码的一个说明书。但是注释的文字不能被系统编译进程序中,在代码中使用//进行单行注释,//后面知道这一行结束多有内容会被编译器自动忽略,使用/*  xxx  */进行多行注释,在xxx部分的所有内容会被编译器忽略。

需要注意的是多行注释不要进行嵌套,比如:/*     /* */    */,是不可以的,因为编译器读到第一个*/时就会认为注释结束,第二个*/就成了不能被识别的输入。

5,常量和变量

常量表示一些固定的数据,变量表示一些可以被改变的数据。

常量的分类:整型常量(int),浮点型常量(float\double),字符常量(char),和字符串常量。

顾名思义整型常量就是整数,包括正负整数和0。浮点型常量就是带小数点的常量。字符常量就是将一个数字,英文字母或者其他符号用单引号括起来,就构成了字符常量,比如:’7’,’c’,’Z’,’¥’,’?’都是字符常量,注意字符常量只能由一个字符,不能是汉字。将一个活多个字符用双引号括起来就构成字符串常量,

比如:”人”,”a”,”xyz”,”C_123”都是字符串常量。

如果我们不确定一个数据的值或者数据的值经常改变时用到变量来表示,变量要先进行定义再进行操作,定义变量会在内存中分配存储空间,一个变量分配一块存储空间,定义格式是:

变量类型 变量名;

比如:int num; char c;  double d;

6,基本运算

数学中用到的加减乘除在c语言中基本适用,加法:+,减法:-,乘法:*,除法:/,还包括数学中没有的取余预算(模运算):%。

需要注意的是c语言对数据类型的自动转换,比如:

double d = 3/2;

printf(”d = %d” , d );

则输出结果是:d = 1.000000

因为3和2是两个整型数据,他们的运算结果也是整型数据1,d是double类型,会对1做一次类型提升,变成double类型的数据1.000000再赋值给d。

整型数据相互运算结果是整型数据,double类型数据运算结果是double类型,整型和double类型数据运算会把整型提升为double类型再做运算。也可以人为进行数据类型转换:

double d = (double)3/(double)2;

数据类型加上括号放在数据前面会把数据强制转换成括号内的数据类型。

7,赋值运算

赋值运算用到符号等于号:=,意思是吧等于号右边的值赋给等于号左边的变量,跟数学上的等于号意义不一样。

int a = 3;

就是把3赋值给变量a,a中的值是3。

a = a+3;

就是把a进行加3运算再赋把新值给a,a的值变成6。

8,自增自减运算

自增运算(++)和自减运算(--):

自增运算a++;相当于a = a+1;   自减运算a--;相当于a = a-1;

int a = 10;

int b = (++a) + (a++);

则a的值是12,因为a做了两次自加运算。b的值是22,(++a)的意思是a自加1后把增加后的值放到括号位置,也即11,(a++)的意思是虽然a自加1,单括号处放的是a自加之前的值,此处也是11,所以:b = 11 + 11;b的值是22。

int a = 10;

int b = (a++) + (++a);

此处a的值是12,因为做了两次自加运算。b的值还是22,(a++)此时a中的值是11,但把a自加前的值10放在括号位置,(++a)a中的值从11加到12并把加后的值12放到括号位置,所以:b = 10 +12;b的值还是22。

9,关系运算:

大于>,小于<,大于等于>=,小于等于<=,等于==,不等于!=

关系运算的结果要么是1(为真),要么是0(为假)。比如:

int a = 3 > 4;

这句话的意思是比较3和4 的大小,3>4不成立,为假,结果返回0并赋值给a。

10,逻辑运算符:

与&&,或||,非!

逻辑与运算符两边都是真时返回值为真,只要有一边为假返回值为假。逻辑或两边都是假时返回值为假,只要有一边为真返回值就为真。!真即为假,!假即为真。c语言中,任何非0值都为“真”,只有0值为“假”,系统判断逻辑为真默认返回值为1,举例:

int a = 3 > 4 && 10 > 8;

3 > 4返回假,10 > 8返回真,相当于a = 0 && 1;结果仍为0,

int a = 3 > 4 || 10 > 8;

分析同上,相当于a = 0 || 1;结果为1。

运算符的优先级问题:

关系运算符结合顺序为从左到右:4>3>2。关系运算符中==,!=优先级相等,<,<=,>,>=的优先级相等,且前者优先级低于后者。

逻辑运算符优先级顺序:小括号() > 负号- > ! > 算数运算符 > 关系运算符 > && > ||

11,三目运算符:

条件 ? 数值1 : 数值2;

int a = 10 > 7 ? 3 : 15;

意思是判断条件10 > 7,若条件成立则返回数值1(也就是3),若条件不成立则返回数值2(也就是13),a的值为3。

0 0
原创粉丝点击