操作符详解 (4)

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

//int main()
//{
//	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//	//              0 1 2 3 4 5 6 7 8 9
//	printf("%d\n", arr[4]);//[]-下标引用操作符
//	//[]-操作数是两个:arr,4
//	return 0;
//}

//int Add(int x, int y)
//{
//	return x + y;
//}
//void test()
//{
//
//}
//int main()
//{
//	int a = 10;
//	int b = 20;
//	int ret = Add(a, b);//()-函数调用操作符//操作数为3
//	//()-不能省略
//	test();//没有参数,操作数为1
//	//函数调用操作符接受一个或多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数
//	return 0;
//}

//结构成员访问操作符
//.
//->

//结构体
// int float char short 
//double long

//书;书名,书号,出版社,作者,定价
//人;名字,年龄,性别

创建了一个自定义的类型
//struct Book
//{
//	//结构体的成员(变量)
//	char name[20];
//	char id[20];
//	int price;
//};
//int main()
//{
//	struct Book b = { "C语言","C20220502",55 };
//
//	结构体变量名.成员名
//	//printf("书名:%s\n", b.name);
//	//printf("书号:%s\n", b.id);
//	//printf("书价:%d\n", b.price);
//
//	//struct Book* pb = &b;
//	//printf("书名:%s\n", (*pb).name);
//	//printf("书号:%s\n", (*pb).id);
//	//printf("书价:%d\n", (*pb).price);
//
//	结构体指针->成员名
//	//struct Book* pb = &b;
//	//printf("书名:%s\n",pb->name);
//	//printf("书号:%s\n",pb->id);
//	//printf("书价:%d\n",pb->price);
//
//	return 0;
//}

//int main()
//{
//	int a = 3;
//	int b = 5;
//	int c = a + b * 7;
//
//	return 0;
//}


负数的整形提升
//char c1 = -1;
//变量c1中的二进制(补码)中只有8个比特位
//11111111
//因为char为有符号的char
//所以要整型提升的结果,高位补充符号位,即为1
//提升后的结果
//11111111111111111111111111111111

正数的整形提升
//char c2 = 1;
//变量c2中的二进制(补码)中只有8个比特位;
//00000001
//因为char为有符号的char
//所以要整型提升的结果,高位补充符号位,即为0
//提升后的结果
//00000000000000000000000000000001

//int main()
//{
//	char a = 3;
//	//00000000000000000000000000000000000000011
//	//00000011-a
//	char b = 127;
//	//00000000000000000000000000000000001111111
//	//01111111-b
//	char c = a + b;
//	//整型提升是按变量的数据类型的符号位来提升的
//	//00000000000000000000000000000000000000011
//	//00000000000000000000000000000000001111111
//	//00000000000000000000000000000000010000010
//	//10000010-c
//	//11111111111111111111111111111111110000010-负数存放的是补码
//	//11111111111111111111111111111111110000001-反码
//	//10000000000000000000000000000000001111110-原码--126
//	//发现a和b都是char类型,都没有达到一个int的大小
//	//这里就会发生整形提升
//	//整型提升是按变量的数据类型的符号位来提升的
//
//
//	printf("%d\n", c);//-126
//	return 0;
//}

无符号整型提升,高位补0
//int main()
//{
//	char a = 0xb6;
//	short b = 0xb600;
//	int c = 0xb6000000;
//
//	if (a == "0xb6")
//		printf("a");
//	if (b == 0xb600)
//		printf("b");
//	if (c == 0xb6000000)
//		printf("c");
//	return 0;
//}

//int main()
//{
//	char c = 1;
//	printf("%u\n", sizeof(c));//1
//	printf("%u\n", sizeof(+c));//4
//	printf("%u\n", sizeof(-c));//4
//	printf("%u\n", sizeof(!c));//4 gcc-4
//
//	return 0;
//}

//int main()
//{
//	int a = 3;
//	int b = 5;
//	a + b;//值属性,类型属性 int
//	return 0;
//}

posted @   morphism  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示