#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int a = 10;
char b = 'w';
int arr[10] = { 2 };
short s = 0;
printf("%d\n", sizeof(s = a + 5));//结果是2
printf("%d\n", s);//结果是0
printf("%d\n", sizeof(a));//4
printf("%d\n", sizeof(int));//4
printf("%d\n", sizeof(b));//1
printf("%d\n", sizeof(char));//1
printf("%d\n", sizeof(arr));//40
printf("%d\n", sizeof(int [10]));//40
return 0;
}
int main()
{
int a = 7;//将7变成15
//7二进制是000000000000000000000111
//15二进制是000000000000000000001111
//1二进制是000000000000000000000001
a = a | (1 << 3);
printf("%d\n", a);
//将a值变回7
//1<<3的二进制为00000000000000000001000
//取反~(1<<3)111111111111111111110111
//按位与
a = a & (~(1 << 3));
printf("%d\n", a);
return 0;
}
void test1(int arr[])
{
printf("%d\n", sizeof(arr));//4
}
void test2(char ch[])
{
printf("%d\n", sizeof(ch));//4
}
int main()
{
char ch[10] = { 0 };
int arr[10] = { 0 };
printf("%d\n", sizeof(ch));//10
printf("%d\n", sizeof(arr));//40
test1(arr);
test2(ch);
return 0;
}
int main()
{
int i = 0; int a = 0; int b = 2; int c = 3; int d = 4;
i = a++ && ++b && d++;//第一个为0假之后后面的运算都不会进行。当条件为||时同理,只要前面为真后面都不会计算
printf(",a=%d\n,b=%d\n,c=%d\n,d=%d\n", a, b, c, d);//1,2,3,4
return 0;
}
//三目操作符:如果?那么是:否则是;
int main()
{
int max = 0;
int a = 3;
int b = 8;
max = a > b ? b : a;
printf("max=%d\n", max);
return 0;
}
//创造一个结构体类型
//学生
struct stu
{
char name[20];
int age;
char xh[20];
};
int main()
{
int a = 20;
//使用struct stu创建了一个类型xs1并且初始化
struct stu xs1 = { "牛马",21,"2023072700" };
printf("%s\n", xs1.name);
printf("%d\n", xs1.age);
printf("%s\n", xs1.xh);
//结构体变量.成员名
struct stu* ps = &xs1;
printf("%s\n", (*ps).name);//和下面->意义一样
printf("%s\n", ps->name);
printf("%d\n", ps->age);
printf("%s\n", ps->xh);
//结构体指针->
return 0;
}
//隐式类型转换:整形提升、算术转换
int main()
{
char a = 3;
char b = 127;
char c = a + b;
return 0;
}
//操作符的属性
//复杂表达式求值的三个影响因素:1.操作符的优先级。2,操作符的结合性。3,是否控制求助顺序
//b=c+ --c有歧义,不知道加法前的c是--前准备的还是--后。
//非法表达式
//int main()
//{
// int i = 10;
// i = i-- - --i * (i = -3) * i++ + ++i;
// printf("%d\n", i);
// return 0;
//}//无法确定运算顺序
//设计表达式的时候应该让其有唯一的运算路径