目录
一、4.12题目讲解
\b 退格符
数组方括号内的值必须为常量
求两个数中的最大数
二、操作符
1.>>右移 <<左移
2.a>b?a:b a>b返回a,否则返回b
(等同于:if(a>b)
return a;
else
return b;)
3.int a=(1,2,3,4,5,6,7,8,9)为逗号表达式。最后一个逗号后的数值,为最终a的值。
因此a=9。
三、基本关键字
1.typedef
typedef类型定义(类型重命名) 把现有的类型重新命名
例如:unsigned int (无符号整数定义)太长太麻烦可以用typedef+unsigned int+你自己定义的名字。
//
将
unsigned int
重命名为
uint_32,
所以
uint_32
也是一个类型名
typedef unsigned int uint_32;
int
main
()
{
//
观察
num1
和
num2,
这两个变量的类型是一样的
unsigned int
num1
=
0
;
uint_32 num2
=
0
;
return
0
;
}
2.static
在C语言中:
static是用来修饰变量和函数的
1. 修饰局部变量-静态局部变量
c修饰局部变量改变了变量的生命周期,让静态局部变量出了作用域依然存在,到程序结束,
生命周期才结束。
2. 修饰全局变量-静态全局变量
一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用,
不能在其他源文件内使用。
如果该文件没有需要的变量值,而其他文件里有,则可以使用 extern 申明 作用:引入变量(从其他文件里引入)。
3. 修饰函数-静态函数
一个函数被static修饰,使得这个函数只能在本源文件内使用,不能在其他源文件内使用。
3.define
#define定义常量和宏
define定义标识符常量
#define MAX 1000
define定义宏
#define ADD(x, y) ((x)+(y))
#include <stdio.h>
int main()
{
int sum = ADD(2, 3);
printf("sum = %d\n", sum);
sum = 10*ADD(2, 3);
printf("sum = %d\n", sum);
return 0;
}
![](https://img-blog.csdnimg.cn/30fe8a7c53dd4433968179043d491b02.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNTM5NzU0NzA=,size_19,color_FFFFFF,t_70,g_se,x_16)
图片中的定义括号不能少!
四、指针
1.内存
内存是电脑上特别重要的存储器,计算机中所有程序的运行都是在内存中进行的 。
所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是
1个字节。
为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地
址
。
![](https://img-blog.csdnimg.cn/4074174f62b3423fae070ec139bd267e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNTM5NzU0NzA=,size_20,color_FFFFFF,t_70,g_se,x_16)
变量都有地址,取出变量地址如下:
int main()
{
int sum = ADD(2, 3);
printf("sum = %d\n", sum);
sum = 10*ADD(2, 3);
printf("sum = %d\n", sum);
return 0;
}
2.指针变量
地址也可以存储起来,需要指针定义=指针变量来存储变量的地址
例
:
#include <stdio.h>
int main()
{
int num = 10;
int *p = #
*p = 20;
return 0;
}
在win32位下,指针的大小都为4(64位为8)
五.结构体
如描述学生,学生包含:
名字
+
年龄
+
性别
+
学号
这几项信息。
这里只能使用结构体来描述了。
例如:
struct Stu
{
char name[20];//名字
int age; //年龄
char sex[5]; //性别
char id[15]; //学号
};
![](https://img-blog.csdnimg.cn/6b8355ec11004b099e55fb6ce50d5b78.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNTM5NzU0NzA=,size_20,color_FFFFFF,t_70,g_se,x_16)
六.分支语句和循环语句
C语言中由一个分号 ; 隔开的就是一条语句。
1.分支语句(选择结构)
if语句只控制一条语句。
基本结构:
if(表达式)
语句;
if(表达式)
语句1;
else
语句2;
//多分支
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;
在C语言中0表示假,非0表示真。
练习
1. 判断一个数是否为奇数
2. 输出1-100之间的奇数
2. switch语句
switch语句也是一种分支语句。 常常用于多分支的情况。
switch(整型表达式)
{
语句项;
}
case 整形常量表达式:
语句;
break;
练习:输入年份和月份,输出天数。