1.什么是C语言
a.C语言是一门高级语言,其还有C++,jave等。
2.第一个C语言程序
3. 数据类型
char(字符数据类型)
short(短整型)
int(整形)
long(长整型)
long long(更长整形)
float(单精度浮点数)
double(双精度浮点数)
4.变量,常量
变量
局部变量:定义在代码块内的变量
全局变量:定义在代码块({})之外的变量
注:a.局部变量和全局变量的名字不要用相同(容易产生bug)。
b.当全局变量与局部变量名字相同时,局部变量优先。
变量的生命周期与生命周期
1.局部变量的生命周期:进入作用域开始。
2.全局变量的生命周期:整个程序的生命周期。
作用域:这个变量哪里能用,哪里就是它的作用域。
常量
字面常量//1,2,3,4....
const修饰的常变量//const:常属性
#define定义的标识符常量//#define MAX 10
枚举常量(被计算机定义的,不可改其值)//枚举关键 enum Sexm
5.字符串+转义字符+注释
字符串:由双引号引起的一串字符称为字符串字面值(字符串)
转义字符:转变原来的意思
注释:例如“//”,“*/”
6.选择语句
如果if(...)
其他else(...)
7.循环语句
while语句
for语句
do...while语句
8.函数
1.库函数
2.自定义函数
#include<stdio.h>
int Add(int x,int y)//int-为函数的返回类型;Add-为函数名;int x-为函数的参数
{
int z +=(x,y);//{}-为函数体
renturn z;
}
int main()
{....
....
....
return 0;
}
9.数组
数组的定义:一组相同类型元素的集合。
int arr【10】//定义一个存放10个整数的数组
... char....//...............字符......
数组的使用:通过下标来使用
10.操作符
1.算数操作符:+,-,*,%;
2.移位操作符(移二进制位):》 右移,《 左移;
3.位操作符(二进制):&(按位与),|(按位或),^(按位导或);
4.赋值操作符
复合赋值符:=,+=,-=,*=,/=,&=,^=,|=,》=,《=;
单目操作符,双目(三目)操作符,(双目:操作位数为2)
!:逻辑反操作
-:减
+:加
&:取地址
sizeof:操作数的类型长度(以字节为单位)(计算的是变量或者类型所占的空间大小)
~:按位取反(2进制)
--:
++:
...
...
...
{
int a = 1;
int b = a++;//后置++(使用方法:先使用a的值在++,反之亦然);
printf("%d\n",a,b)//打印出来的b=1,a=2
...
}
*:间接访问操作符
(类型)强制类型转换:
{
int a = (char)3.23;
}
5.关系操作符:>=,<=,!=,==;
6.逻辑操作符:(0为假,正数为真) -------------------- 注:不是很懂
{
int a = 2;
int b = 3;
int c = a&&b;//与数学中的”交“相似(a||b,与“并”相似)
printf("%d\n",c);//打印出来为1(真)
}
7.条件操作符
exp1 ? exp2 :exp3
{
max(a<b?b:a)//若a>b则输出条件3;反之亦然
}
8.下标引用,函数调用和结构成员操作符
a.下标引用操作符:
int main()
{
int arr[10] = {0};
int arr[4];//[]为下标引用操作符
return 0;
}
b.函数调用操作符:
int Add(int x,int y);
{
int z = 0;
z = x + y;
return z;
}
int main()
{
int a = 8;
int b = 8;
int sum = Add(a,b);//()为函数调用操作符
return 0;
}
c.结构成员操作符(?)
(原码,反码,补码的补充)注:计算机中二进制数储存时最高位放的是符号位(1为负,0为正);
1.只要为整数内存中储存的都是二进制的补码。
原码(直接按正负写出的二进制序列)——>反码(原码符号位不变,其他位按位取反)——>
补码(反码加一);
2.正数——反码,补码,原码相同;
3.负数——内存只存补码;
11.常见关键字
auto:
int main()
{
auto int a = 20;//"a"既叫局部变量,也叫自动变量(auto原本每个局部变量前都有,后省略)。
return 0;
}
register, break ,case, char, const, continue(继续), default(默认),do, doouble, else,
enum, extern(引入外部符号), float, for, goto, if, int ,long,
register(寄存器):也叫计算机储存数据,(硬盘——>内存——>高速缓存——>寄存器)
signed:(signed int定义的变量是有符号的,而unsigned定义无符号的变量)
sizeof, static(静态), struct(结构体关键字), switoh , typedef(类型定义/类型重定义),
union(联合体/共用体), void(无/空), volatile, while,
static:1.修饰局部变量时,局部变量的生命周期变长;
2.修饰全局变量时将变量的作用域变短;
3.修饰函数时改变函数的链接属性(外部链接——>内部链接);
#define(定义常量和宏,define是一种指令不是操作符)
12.指针(大概了解)
:指针变量:是用来存放地址的
:*p解引用操作符
int main()
{
int a = 10;
int* p = &a;
*p = 39;
printf("%d\n",a)//打印出的a应等于39;
return 0;
}
13.结构体(自己创建出来的一种类型)
#include<stdio.h>
struct Book//struct:结构体关键字
{
char name[20];
};//必须加“;”
int main()
{
struct Book b1={"c语言"};
printf("%s\n",(b1).name);//b1为利用结构体类型创建的该类型的结构体变量;
return 0;
}
(用下面代码时应表示*bp与&b1的关系;例:sturct Book* bp = &b1)
//printf("%s\n",(*bp).name);(.):结构体变量.成员
//printf("%s\n",bp->name);//(->):结构指针->成员
补充:若想再添加改变后的书名:
strcpy(b1.name = c++)//strcpy为字符串拷贝函数(库函数),所以应加头文件(#include<string.h>);
之所以不直接用(b1 name = C++)因为“name”不是一个变量而是一个数组;
总结:以上再加上期的复习,只是对c语言有个大概了解(很粗略),对于我这个小白来说,它能让自己在以后的学习中脑子有一个大概的框架,从而更好的理解与学习。