初识C语言【三】

6 选择语句

int main() 
{
	int coding = 0;
	printf("请输入0或1:\n");
	scanf("%d",&coding);
	if (coding == 1)
		printf("true");
	else
		printf("false");
	return 0;
}

7 循环语句

  • while语句
  • for语句
  • do-while语句
int main() {
	int iq = 0;
	printf("请输入你的iq:\n");
	while (scanf("%d\n", &iq)!=EOF) 
	// or while (scanf("%d\n", &iq) == 1)
	{
		if (iq > 140)
			printf("Genius!");
		return 0;
	}
}

如果scanf中输入两个数,则改为while(scanf("%d\n", &iq) == 2)

8 函数

int Max(int a, int b) {
	if (a >= b)
		return a;
	else (a < b);
		return b;
}

int main() {
	int a = 0;
	int b = 0;
	int max = 0;
	printf("请输入两个整数:");
	scanf("%d %d", &a, &b);
	max = Max(a, b);
	printf("这两个数的较大数是:%d", max);
	return 0;
}

9 数组

  1. 9.1 数组定义
//数组定义
int arr1[10] = {1,2,3,4,5,6,7,8,9};
char ch[] = {'a','b','c','d'};
  1. 数组下标
    下标计数从零开始,可以通过下标被访问,若有十个元素,下表数0-9

  2. 数组的使用

//数组定义
int arr1[10] = {1,2,3,4,5,6,7,8,9};
char ch[] = {'a','b','c','d'};

int main() {
	char arr2[6] = {'0'};
	int i = 0;
	for (i=0;i<10;i++) 
	{
	printf("%c\n", ch[i]);
	}
	return 0;
}

10 操作符

·基本操作符: + - * / %
·移位操作符:>> <<
·位操作符:& | ^
·赋值操作符:= += -=
·单目操作符(只有一个操作数):! - + & sizeof ~ – ++ * (类型):强制类型转换 eg.(int)直接舍弃小数点后的数
·关系操作符: > >= < <= != ==
·逻辑操作符:&& ||
·条件操作符:exp1 ?exp2 : exp3
若exp1为真,则取exp2;若exp1为假,则取exp3
·逗号表达式:exp1,exp2, exp3,…,expN
从左到右依次计算,整个表达式的结果是最后一个表达式的结果

11 常见关键字

  • 关键字typedef:类型重定义
typedef unsigned int uint_32;
int main() {
	unsigned int num1 = 0;
	uint_32 num2 = 0;
	return 0;
}

num1和num2类型一致

  • 寄存器关键字 register
    一般变量存储在内存中register int num = 0则建议将num的值放在寄存器里,但最终是由编译器决定。因此不能取地址(内存才有地址)

  • 关键字static
    static用来修饰变量和函数
    可以修饰局部变量,全局变量,函数

  • 修饰局部变量时,改变了局部变量的存储类型;本来整个局部变量是存储在栈区的,被static修饰后存储在静态区,因此即便出了作用域该变量也不销毁,生命周期与程序的生命周期一样长。

  • 修饰全局变量时,会改变全局变量的外部链接属性,使该变量只能在本源文件中使用,不能在其他源文件中使用。

  • 修饰函数与修饰全局变量的作用相似。

12 #define定义常量和宏

宏定义时命名一般大写,以示区分

//定义标识符常量
#define MAX =100
//定义宏,(x)+(y)有括号的原因是用的时候可能会有表达式
#define ADD(x,y) ((x)+(y))

13 指针

1、内存会被划分小的内存单元,一个内存单元的大小是1个字节
2、每个内存单元都有编号,这个编号也被称为:地址/指针
3、地址/指针就可以存放在一个变量中,即指针变量
4、通过指针变量中存储的地址,就能找到指针指向的空间

int main() {
	int num = 10;
	&num;
	printf("%p\n", &num);
	int* p;//p是一个指针型变量,对象是int类型的
	p = &num;
	*p = 20;//num的值改为20
	printf("%d\n", num);
	return 0;
}

地址取第一个字节的地址(最小的地址)
指针的大小:4字节(32位)或8字节(64位)

14 结构体

struct stu
{
	char name[20];
	int age;
	char sex[5];
};

int main() {
	//初识化结构体信息
	struct stu s = { "张三", 23, "男" };

	//两种访问方式 . or ->
	//printf("name = %s age = %d sex = %s\n", s.name, s.age, s.sex);
	//写入时数组不用取地址符,本身就是地址
	//scanf输入完后不要换行符!!!
	scanf("%s %d %s", s.name, &(s.age), s.sex); 
	struct stu* ps = &s;
	printf("name = %s age = %d sex = %s\n", ps->name, ps->age, ps->sex);
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值