主函数:
int main ()
{
return 0;
}
printf("") //打印founction;需调用include<stdio.h>;
字符串类型:
char //字符数据类型,如'a','A';
short //短整型;
int //整形;
long //长整形;
long long //更长的整形;
float //单精度浮点型;如:3.1;
double //双精度浮点型;如:3.14;
打印printf:
printf("%c\n",);//char类型
printf("%d\n",);//int类型
printf("%f\n",);//浮点数
printf("%p\n",);//以地址形式打印
printf("%c\n",size of (char)); //size of ():所占字节
char:1;
long:4;
int:4;
float:4;
double:8;
short:2;
long long :8;
所占内存空间大小:
bit<byte(字节)<kb<mb<gb<tb<pb
8bit=1字节
1kb=1024字节
1mb=1024kb
.........
变量:
全局变量:定义在代码块({})之外的变量;
局部变量:定义在代码块({})之内的变量;
全局变量与局部变量可以同时存在,但是在打印时只打印局部变量,所以在定义变量时,变量名尽量不要相同。
局部变量不能在{}之外打印;
#include<stdio.h>
int main()
{
{
int a=100;
}
printf("%d/n",a);
return 0;
}
此时代码会报错,因为int a=100在{}内是封闭的;printf函数无法打印;
scanf:输入函数
scanf("%d/n",&num1,&num2);
scanf函数输入时变量要加&(取地址符);
C语言语法定义:变量要定义在代码块之前!
作用域:
局部变量的作用域在其所在的代码块之内;
全局变量的作用域在所有地方都可以使用;
常量:
1、const-:常属性(不可改变)
如 const- int n=0;
n不可改变,只能是10;
2、define定义的标识符常量
如#define MAX=10;
在以后的使用中MAX是常量10;
3、枚举常量(enum)
如enum SEX
{
MALE,FAMALE,SECRET
};
字符串:
char arr1[]="abc"
"abc"-->'a','b','c','\0'
'\0'是字符串结束标志;
strlen:计算字符串长度
如printf("%d/n",strlen(arr1));
结果为3;
转义字符:
\n:换行符;
\t:水平制表符;
\\:表示一个反斜杠;
\xdd:十六进制数;
\ddd:八进制数;
ASCII表中:
65:A;97:a;
注释:
C语言中,//或者/*........*/表示注释语句;
选择语句:
if()
......
else
....
循环语句:
while循环;
for循环;
do...while循环
条件语句:
while(条件)
{
};
函数:
定义一个函数:
include<stdio.h>
{
int Add(int x,int y)
int z=x+y;
return z;
}
int main()
{
int num1=a;
int num2=b;
int sum=0;
sum=Add(num1,num2);
printf("%d/n",sum);
return 0;
}
此代码定义了Add函数为两个数之和,在主函数中可以直接调用Add函数;
数组:
数据类型 数组名 []={};
如:
int arr1[]={''abc''};
操作符:
算术操作符:+ - * / %(取模);
移位操作符:>>(右移操作符),<<(左移操作符)
位操作符:&(与) ^(异或) |(或)
赋值操作符:+=;-=;*=;/=;%=;
~:按位取反
负数在内存中存储时,存储的是二进制的补码
源码 反码 补码
在源码的基础上,除了第一个符号位不变,其他位取反,得到反码;
在反码的基础上,从后往前加一得到补码;
(类型):强制类型转换
如:int a=(int)3.14
将double类型的数3.14强制转换成int类型,输出结果为3;
条件操作符:(三目操作符)
exp1?exp2:exp3;
若exp1为真,则输出exp2,否则输出exp3;
如:
a>b?a:b;
若a>b,则输出a,否则输出b;
逗号表达式:
exp1,exp2,exp3......,expn;
typedef类型定义
如:
typedef unsigned int u_int
将unsigned int 重定义为u_int ,在以后的代码里可以直接用u_int 表示unsigned int;
关键字static:
//static修饰局部变量时,局部变量的生命周期边长;
修饰全局变量时,改变了变量的作用域,让静态全局变量只能在源文件内部使用;
//static修饰函数时,改变了函数的链接属性;
外部链接属性———>内部链接属性;
define定义常量和宏
include<stdio.h>
#define MAX 100
int main()
{
int a=MAX;
printf("%d/n",a);
return 0;
}
此时输出的结果为100;
define语法内容为:
define exp1 exp2
宏的定义
如#define MAX(X,Y) (X>Y?X:Y)
宏的定义与函数相似;
指针:
取地址符:&
int a=10;
int* p=&a;//取a的地址
*p=20//将a的值改为20
printf("%p/n",&a);
printf("%p/n",p);
printf("%p/n",&a);
printf("%p/n",p);
输出结果相同;
*-->解引用操作符;
x32系统中,一个指针的内存是32bit,即4个字节;
x64系统中,一个指针的内存是64bit,即8个字节;
结构体:
关键字:struct
如:
struct Book
{
char name[20];
short price;
};
int main()
{
struct book b1={"C语言",55};
printf("书名为%s\n",b1.name);
b1.price=20;
printf("%d\n",b1.price);
return 0;
}
至此,生活中的一切都可以用结构体在c语言中表达出来!