一、对于C语言的描述
你可以将之理解为:一种实现人和计算机交流的语言,你通过键盘把想实现的功能写下来,后面就会有相应的翻译官(即编译器)去帮你们翻译,让计算机明白你的所想,然后计算机就会调动自己的资源去执行你所写的命令。
1.接下来让我们试着写一下吧!
写的途中我会介绍一些写项目所涉及到的linux常用命令或者快捷键。
ctrl+alt+t :调出终端 (也可以鼠标点击,但尽量掌握用键盘)
mkdir -p /home/chenpi/csdn_c1 :(注意空格)
mkdir 创建文件的意思 。
-p 如果 mkdir 找不到父目录,那么这个参数会首先帮助创建父目录。
/home/chenpi/csdn_c1 你想创建的文件夹路径。
vim hello.c :使用vim编辑器写代码,写完后保存退出即可,此操作会创建一个.c文件在该目录下。
进入vim后,按i进入编辑模式,写入代码后,
先按esc退出到可视模式,此时就只能看,不能再改动代码了,
然后按shift+:进入命令行模式,输入wq,意思是保存退出。
保存退出后,输入:
gcc helloworld.c (编译程序,会生成一个计算机可以识别的文件)
gcc功能:它也是一个程序,是C程序的编译器,类似翻译官的功能,将C程序的源文件翻译成计算机能够识别的能够看懂的文件。gcc的一些语法很常用,自行百度学习即可。
ls -lh(也可以只用ls,加上-lh可以显示文件大小等信息)
./a.out (运行程序a.out ,前面的 ./代表当前目录下)
即可看到打印的信息。
2.下面说一下定义变量:
int val;(虽然没给数,但是里面会有一个随机数)
int var = 250;
int var1, var2, var3;
int var1 = 1, var2 = 2, var3 = 3;
以上均可,但下面这个要注意,会报错:
int 2var; //gcc报错,因为第一个字母不能是数字.只能是字母或者下划线,区分大小写
有特殊含义功能的单词,这些单词不能随意使用
例如: int , return, void, main, include等
int int = 250;不能用关键字取变量名
3.下面说一下变量的数据类型:
数据类型功能:让编译器gcc计算变量将来要分配的内存空间大小
12类基本数据类型如下:
(阅读格式:关键字名称 /含义 /分配的内存大小 /数字范围)
char 字符类型(本质是单字节整型数) 1字节 -128~127
unsigned char 非负的单字节整数 1字节 0~255
short 双字节整数 2字节 -32768~32767
unsigned short 非负的双字节整数 2字节 0~65535
int 四字节整数 4字节 -2^31~2^31-1
unsigned int 非负的四字节整数 4字节 0~2^32-1
long 四字节整数 4字节 -2^31~2^31-1
unsigned long 非负的四字节整数 4字节 0~2^32-1
long long 八字节整数 8字节 -2^63~2^63-1
unsigned long long非负八字节整数 8字节 0~2^64-1
float 单精度浮点数 4字节 略
double 双精度浮点数 8字节 略
注意:
对于32位系统/64位系统, unsigned int都是4字节
对于32位系统,unsigned long是4字节
对于64位系统,unsigned long是8字节
你也可以利用关键字sizeof能够查看数据类型分配内存的大小。
sizeof关键字语法∶内存大小(单位是字节)= sizeof(变量名或者数据类型名)
例如︰long long var = 1;
printf("%d \n",sizeof(var)); //即可打印出所用内存大小,自行尝试。
4.下面说一下整型数据类型
整型数据类型的关键字为int
可以用short或者unsigned short或者long或者unsigned long 修饰
所以int 可以代表2字节或者4字节
int类型的六种形式:
形式1:short(int)用2字节表示,有符号
short int a = 250;等于short a =250;
形式2:long(int)用4字节表示,有符号
long int a = 250;等于 long a = 250;
形式3:unsigned short(int) 用2字节表示,无符号
unsigned short int a = 250;等于 unsigned short a = 250;
形式4:unsigned long(int)用4字节表示,无符号
unsigned long int a = 250 ; 等于unsigned long a = 250;
整型常数:
100:gcc编译器默认为int类型
100L:gcc编译器把它当成long型
100LL:gcc编译器把它当成long long类型
100U:gcc编译器把它当成unsigned int类型
100UL:gcc编译器把它当成unsigned long类型
浮点数据类型:float,double
1.23:gcc编译器把它当成double类型
1.23f:gcc编译器把它当成float类型
数据类型和对应的占位符(给printf函数使用)
数据类型 占位符
char %c , %hhd
unsigned char %c , %hhd
short %hd
unsigned short %hu
int %d
unsigned int %u
long %ld
unsigned long %lu
float %f或者%g //前者保留多余的0,后者不保留
double %lf或者%lg