操作符详解 (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;
//}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律