成为算法之王的第三天

今天学习的还是一些操作符,一些常见关键字和对c语言的灵魂指针和结构体的简单了解。

int main()
{
	int a = 10;
	int b = ++a;//前置++:先++后使用

	printf("%d\n", b);//11
	printf("%d\n", a);//11

	return 0;
}
int main()
{
	int a = 10;
	int b = a++;//后置++:先使用后++

	printf("%d\n", b);//10
	printf("%d\n", a);//11

	return 0;
}
int main()
//逻辑&&与,全真才真,一假就假。
{
	int a = 10;
	int b = 3;
	int c = 0;
	int d = a && b;
	int e = a && c;

	printf("%d\n", d);//1
	printf("%d\n", e);//0

	return 0;

}
int main()
//逻辑||与,有真就真,全假才假。
{
	int a = 10;
	int b = 3;
	int c = 0;
	int f = 0;
	int d = a || b;
	int e = a || c;
	int g = c || f;

	printf("%d\n", d);//1
	printf("%d\n", e);//1
	printf("%d\n", g);//0

	return 0;

}
int main()
{
	int a = 5;
	int b = 10;
	int c = 3;
	int max = 0;
	int min = 0;

	//exp1? exp2: exp3
	//exp1成立,exp2计算,整个表达式结果是exp2的结果
	//exp1不成立,exp3计算,整个表达式结果是exp3的结果
	max = a > b ? a : b;
	min = a < c ? a : c;

	printf("%d\n", max);//10
	printf("%d\n", min);//3

	return 0;

}
int main()
{
	int a = 0;
	int b = 5;
	int c = 10;
	int d = (a = b - 3, c = a + b, b = b + c);
	//exp1, exp2, exp3, ..,expN  逗号表达式:逗号隔开的一串表达式
	//从左向右依次计算,整个表达式结果是最后一个表达式的结果

	printf("%d\n", d);

	return 0;

}
typedef unsigned int u_int;//重命名类型名字

int main()
{
	unsigned int a = 10;
	u_int b = 5;

	return 0;

}
void test()
{
	int a = 1;
	a++;
 
	printf("%d\n", a);
}
//未用static修饰局部变量,局部变量到了生命周期结束自动销毁,下次进入生命周期重新建立


int main()
{
	int i = 0;

	while (i < 10)
	{
		test();
		i++;
	}

	return 0;

}
//结果是一串2
void test()
{
	static int a = 1;
	a++;

	printf("%d\n", a);

}
//static 修饰局部变量改变了局部变量的生命周期
//让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束
int main()
{
	int i = 0;

	while (i < 10)
	{
		test();
		i++;

	}

	return 0;

} 
//结果是2-11
//#define定义宏
#define ADD(x,y) ((x)+(y))
#define jian(x,y) x-y
int main()
{
	int a = ADD(5, 3);
	int b = 10 * ADD(5, 3);
	int c = jian(5, 3);
	int d = 10 * jian(5, 3);

	printf("%d\n", a);//8
	printf("%d\n", b);//80
	printf("%d\n", c);//2
	printf("%d\n", d);//47这是因为define定义的宏是替换,定义的jian(x,y)这个函数有缺陷,需要加括号。

	return 0;

}
int main()
{ 
	int a = 10;//在内存中要分配的空间4个字节
	printf("%p\n", &a);//%p专门用来打印地址

	int* pa = &a;//pa用来存放地址在c语言中pa是指针变量
	//*说明pa是指针变量
	//int说明pa执行的对象是int类型的

	char b = 'c';
	char* pb = &b;

	*pa = 20;//*解引用操作*pa就是通过pa里面的地址找到a
	printf("%d\n", a);//打印出来a变成20,说明可以通过pa改变a

	return 0;

}
int main()
{
	printf("%d\n", sizeof(char*));
	printf("%d\n", sizeof(short*));
	printf("%d\n", sizeof(int*));
	printf("%d\n", sizeof(long*));
	printf("%d\n", sizeof(long long*));
	printf("%d\n", sizeof(float*));
	printf("%d\n", sizeof(double*));
	//发现都是4个字节指针的大小是相同的指针式用来存放地址的
	//指针需要多大空间取决于地址的存储需要多大空间
	//32位机器存储一个量32bit也就是4个字节
	//如果是64位机器的话就是64bit也就是8个字节 

	return 0;

}
//结构体可以让c语言创建出新的类型出来
//创建一个学生
struct Stu
{
	char name[20];//成员变量
	int age;
	double score;

};
int main()
{
	struct Stu s = { "张三",20,85.5 };//结构体的创建
	printf("1: %s %d %lf\n", s.name, s.age, s.score);//结构体变量.成员变量

	struct Stu* ps = &s;
	printf("2: %s,%d,%lf\n", (*ps).name, (*ps).age, (*ps).score);

	printf("3: %s,%d,%lf\n", ps->name, ps->age, ps->score);//结构体指针->成员变量名

	return 0;

}

我是要成为算法之王的男人!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值