简单程序的结构
int main(void) //函数头
{//函数体
语句;
return 0;
}
注:大部分的语句都是以分号(;)结束,还有必须是英文状态下输入符号。
可读性
写程序必须要有可读性,不然明天也许你就忘了那行代码是什么意思,然后从头开始看,浪费时间。
保持注释,定义变量要来做什么,可以注释说明,这样下次再看的时候能迅速知道,而且当需要别人阅读你的代码的时候,别人也会懂。
规定格式,保持缩进(tab键缩进),当你写短的代码的时候还不会怎么样,但当你写大量代码的时候,如果没有格式,你就会乱七八糟的,看都看不懂自己在写什么
如:
int main()
{
if(....)
{
} //这样保持一定的格式,知道什么时候开始,什么时候结束。
}
多个函数
#include<stdio.h>
void call(void); //声明函数,这样才能调用函数。
int main()
{
printf("接下来调用函数\n");
call();// 调用函数
return 0;
}
void call(void)
{
printf("这里是被调用的函数,返回值是空,所以不用return,第二个(void)是不带参数的意思\n");
}
编译完执行就会出现
我并没有在 printf("接下来调用函数\n");写这个。而是写了call(); 因为前面声明了函数,所以才可以调用,因为编译器是自上到下编译的。写到这里,大概有人想到了,把void call(void)函数写在main的前面,这样就可以不用声明也可以调用了。但一般有大量代码的一般会把调用的函数写在其他文件里这里就需要自己写一个头文件来定义,然后预编译这个头文件(#include"你的写头文件.h")但需要把这个函数声明extern,这样外部文件也能调用。
C语言保留关键字和保留标识符
auto extern short while
break float signed _Alignas
case for sizeof _Alignof
char goto static _Atomic
const if struct _Bool
continue inline switch _Complex
default int typedef _Generic
do long union _Imaginary
double register unsigned _Noreturn
else restrict void _Static_assert
enum return volatile _Thread_local
粗体表示c90新增的关键字,斜体表示c99标准新增的关键字,粗斜是C11新增的关键字。
数据类型
数据类型占用内存:
32位编译器:
char :1个字节 字符型
char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)
short int : 2个字节 短整型 -------------取值范围: -32768~32767
int: 4个字节 整型 -----------------取值范围:-2147483648~2147483647
unsigned int : 4个字节 正整型
float: 4个字节 浮点型(就是小数型) 取值范围:0以及1.2*10^(-38) ~ 3.4*10^(38)
double: 8个字节 双精度浮点型(还是小数型,不过内存占用比float多一倍。) 取值范围:0以及1.2*10^(-308) ~ 3.4*10^(308)
long: 4个字节
long long: 8个字节
unsigned long: 4个字节
64位编译器:
char :1个字节
char*(即指针变量): 8个字节
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 8个字节
long long: 8个字节
unsigned long: 8个字