C语言学习笔记04

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>

int Max(int a, int b)  //函数前写void是说不需要返回值,就不用加return语句,所以不需要返回值的函数可以这么写
{
	int c;
	if (a > b)
		c = a;
	else
		c = b;
	return c;
}

#define MAX 100  //宏定义变量,所有的MAX都代表100
#define MAX(X,Y) (X>Y?X:Y)  //宏定义的函数写法

void test()  //函数前写void是说不需要返回值,就不用加return语句,所以不需要返回值的函数可以这么写
{
	static int w = 1;  //w是一个静态的局部变量
	w++;
	printf("%d\n", w);

}

int main()
{
	char arr_1[] = { 'a','b','c','d','e','\0' };  //字符串写成数组形式要自己加一个'\0',否则字符串长度为随机值
	char arr_2[] = { 'a','b','c','d','e' };
	char arr_3[] = "abc";  //写成""内的字符串形式,系统自动在最后加'\0'
	printf("%d\n", strlen(arr_1));
	printf("%d\n", strlen(arr_2));
	printf("%d\n\n", strlen(arr_3));

	int num_1 = 0;
	int num_2 = 0;
	scanf_s("%d,%d", &num_1, &num_2);  //输入时必须按照scanf""中的格式,有空格也要打空格,有逗号也要打逗号,什么都没有的两个输入间默认打空格
	printf("%d\n", Max(num_1, num_2));  //这里是将输入的值放入&num_1这个地址中,而不是将这个地址赋值
	printf("%d\n\n", MAX(num_1, num_2));  //调用宏定义,相当于(num_1>num_2?num_1:num_2)

	int a = 0;
	int b = ~a;  //b是有符号的整型
	//按(2进制)位取反
	//正数原码、反码、补码都一样;
	//负数的原码符号位不变,其他位取反>>>反码加一>>>补码
	//整数在内存中存储的时候,存储的是二进制的补码
	printf("%d\n\n",b);  //打印的是这个数的原码

	int c = 10;
	int d = c++;  //后置++,先使用c的值,在对c++
	int e = 20;
	int f = ++e;  //前置++,先++,后使用e的值
	printf("c = %d  d = %d  e = %d  f = %d\n\n", c, d,e,f);  //11 10 21 21

	int g = (int)3.14;  //强制类型转换 double >>> int
	
	int h = 3;
	printf("a&&b = %d  b&&h = %d\n\n", a && b, b && h);  //真 - 非0,负数也是非0    假 - 0
	//&& - 逻辑与,输出整个表达式的真假值	

	int a1 = 10;
	int b1 = 20;
	int max = 0;
	max = (a1 > b1 ? a1:b1);  //(表达式1 ? 表达式2 : 表达式3);表达式1的结果为真,表达式2执行a1赋值给max,否则表达式3执行
	//条件操作符,三目操作符

	register int k = 100;  //建议把k放入寄存器,但是要不要放入由编译软件决定

	typedef unsigned int uint;  //typedef - 类型定义 - 类型重定义
	uint q = 20;

	int i = 0;
	while (i < 5)
	{
		test();
		i++;
	}  //static修饰一个局部变量时,其生命周期变长
	   //static修饰一个全局变量时,改变其作用域,使其只能在自己的源文件内使用
	   //static修饰一个函数时,改变了函数的链接属性,使其失去外部链接属性,变成内部链接属性




	return 0;

}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值