基本了解C语言的基础知识,对C语言有一个大概的认识。
只是简单认识,不做详细讲解。
1、函数
在我们写代码时,如果你要多次使用同样的代码,那你不如将它写成一个函数来简化代码,方便自己使用。
如我要多次运用辗转相除法来求最大公约数:
int zzxc(int x, int y)//辗转相除求最大公约数
{
int temp;
while (x % y != 0)
{
temp = x;
x = y;
y = temp % x;
}
return y;
}
像这样定义一个函数就可以减少了写代码重复的次数。
2、数组
简单定义一个整型数组
int arr[10]={1,2,3,4,5,6,7,8,9,10};//这个数组最多放10个元素
让我们来浅用一个整型数组。
#include
#int main()
{
int i = 0
int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
for( i = 0; i < 10; i++)
{
printf("%d\n",arr[i]);
}
return 0;
}
3、操作符
算数操作符: + - * / %
移位操作符: << >>
位操作符: & ^ |
赋值操作符: = += -= /= *= &= ^= >>= <<=
单目操作符:! 逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制按位取反
-- 前置、后置--
++ 前置、后置++
* 间接访问操作符(解引用操作符) (类型) 强制类型转换
关系操作符: >
>=
<
<=
!= 用于测试“不相等”
== 用于测试“相等”
逻辑操作符:&& 逻辑与
|| 逻辑或
条件操作符: exp1 ? exp2 : exp3
逗号表达式 :exp1 , exp2 , exp3 , exp……
下标引用、函数调用和结构成员:[] , () , . , ->
4、常见关键字
for ;while ; do while; break ; continue ;
if ; switch ; case ; default ; goto ;
char ; short ; int ; long ; float ; double ;
const 常属性的 ;
signed 有符号的 ; unsigned 无符号的 ;
enum 枚举 ; struct 结构体 ; union 联合体(共用体) ; void 无(函数的返回类型,函数参数); sizeof 计算大小 ;typedef 类型重命名 ;
extern 声明外部符号的 ;
register 寄存器 ;
static 静态的 ;
return 返回值 ;
简单介绍几种关键字:
typedef : 类型重命名
**//将unsigned int 重命名为**us_i1
int main()
{
//注意:num1、num2的类型是一样的
unsigned int num1 = 0;
us_i1 num2 = 0;
return 0;
}
static :
在C语言中: static是用来修饰变量和函数的
1. 修饰局部变量-称为静态局部变量
2. 修饰全局变量-称为静态全局变量
3. 修饰函数-称为静态函数
(1)修饰局部变量
代码1:
代码2:
通过比较代码1和代码2我们得出一个结论:
static修饰局部变量改变了变量的生命周期
让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束。
(2)修饰全局变量
static在修饰全局变量时,这个全局变量的外部链接属性就变成了内部链接属性其他源文件就不能再用这个全局变量了。(我们在使用时感觉是作用域变小了)
给大家一幅图大家浅浅体会一下:
(3)修饰函数
代码1:
代码2:
通过对比我们得出结论:一个函数被static修饰,使得这个函数只能在本源文件内使用,不能在其他源文件内使用。
5、define定义常量和宏
#define N 10//定义常量
#include
#define add( x , y) ( (x)+ (y) )//定义宏
int main()
{
int a = 10;
int b = 20;
int c = add(a, b);
printf("%d", c);
}
注意:define不是关键字,是预处理命令!
6、指针
内存:内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的 。所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。
变量是创建内存中的(在内存中分配空间的),每个内存单元都有地址,所以变量也是有地址的。
取出变量地址如下:
int main()
{
int num = 10;
#//取出地址
printf("%p", &num);//%p输出num的地址
}
int main()
{
int a = 10;
int *p = &a;//p就是指针变量
return 0;
}
接下来我们简单使用一下指针变量。
int main()
{
int a = 10;
int *p = &a;
*p = 20;
return 0;
}
这里a的值被改成了2。
当然不止有整型指针,我们来使用一下字符指针。
int main()
{
char ch = 'b';
char *pc = &ch;
*pc = 'a';
printf("%c",ch);
return 0;
}
指针的大小
#include
//指针变量的大小取决于地址的大小
//32位平台下地址是32个bit位(即4个字节)
//64位平台下地址是64个bit位(即8个字节)
int main()
{
printf("%d\n", sizeof(char*));
printf("%d\n", sizeof(short*));
printf("%d\n", sizeof(int*));
printf("%d\n", sizeof(double*));
return 0;
}
7、结构体
结构体就是把一些单一类型组合到一起的做法。
比如:人:姓名+年龄+住址+电话
书:书名+作者+出版社+价格
创建一个结构体:
struct Stu
{
char name[20];//名字
int age; //年龄
char sex[5]; //性别
char id[15]; //学号
};
结构体的初始化:
struct Stu s = {“张三”,“20”,“男”,“020501116”}
好了以上为今日分享,感谢大家的浏览,请大家多多斧正。