整型

C语言中的截断与整型提升

随声附和 提交于 2020-03-03 18:10:35
C语言中的截断与整型提升 我们首先来看一段代码: # include <stdio.h> # include <stdlib.h> union Un //--联合体 { char c ; int i ; } ; int main ( ) { //联合变量的定义 union Un un = { 0 } ; //计算联合变量的大小 printf ( "%d\n" , sizeof ( un ) ) ; //--结果为4,联合体按照最大的变量开辟空间 // 下面输出的结果是一样的吗? un . c = 129 ; // 10000001 printf ( "%d\n" , un . c ) ; //-127 printf ( "%d\n" , un . i ) ; //129 system ( "pause\n" ) ; return 0 ; } 猜猜结果吧! 来看看真实的结果: 这是为什么呢?这就涉及到了C语言中的截断和整型提升。 截断: 在c语言中进行变量赋值的时候, 如果将字节多的数据类型赋给一个字节少的数据类型,会发生“截断”。 发生这种情况的原因是:在赋值过程中只将占字节较长的变量的低位赋给占字节较短的变量。 整型提升: 整型提升是C程序设计语言中的一项规定:在表达式计算时,各种整形首先要提升为 int类型 ,如果int类型不足以表示则要提升为 unsigned int类型

C语言 运算符优先级

一个人想着一个人 提交于 2020-02-29 12:12:23
优先级 运算符 名称或含义 使用形式 结合方向 说明 1 后置++    后置自增运算符 变量名++ 左到右   后置--    后置自减运算符 变量名--       [ ] 数组下标 数组名[整型表达式]    ( ) 圆括号 (表达式)/函数名(形参表)   . 成员选择(对象) 对象.成员名   -> 成员选择(指针) 对象指针->成员名   2 - 负号运算符 -表达式 右到左 单目运算符 (类型) 强制类型转换 (数据类型)表达式   前置++ 前置自增运算符 ++变量名 单目运算符 前置-- 前置自减运算符 --变量名 单目运算符 * 取值运算符 *指针表达式 单目运算符 & 取地址运算符 &左值表达式 单目运算符 ! 逻辑非运算符 !表达式 单目运算符 ~ 按位取反运算符 ~表达式 单目运算符 sizeof 长度运算符 sizeof 表达式/sizeof(类型)   3 / 除 表达式/表达式 左到右 双目运算符 * 乘 表达式*表达式 双目运算符 % 余数(取模) 整型表达式%整型表达式 双目运算符 4 + 加 表达式+表达式 左到右 双目运算符 - 减 表达式-表达式 双目运算符 5 << 左移 表达式<<表达式 左到右 双目运算符 >> 右移 表达式>>表达式 双目运算符 6 > 大于 表达式>表达式 左到右 双目运算符 >= 大于等于 表达式>=表达式

python格式化

回眸只為那壹抹淺笑 提交于 2020-01-17 23:54:07
格式化 格式化 一、占位符 字符串 整型 浮点型 二、format函数 格式化 一、占位符 字符串 1.普通语句str+str name=‘赵飞’ print(‘姓名是:’+name) 输出:姓名是赵飞 2.int—>str(强制类型转换) str(int) age=18 print(’'年龄是:str(age)) print(‘年龄是:%s’%age) 占位 3.布尔类型–>字符串 整型 %d digit 数字 1.str–>int 错误 2.float–>int 有取整作用 age=18.5 print(‘年龄是:%d’%age) 浮点型 int—>float 二、format函数 字符型、整型、浮点型都可 例如整型: age = 2 message = '乔治说:我今年{}岁了' . format ( age ) print ( message ) 乔治说:我今年 2 岁了 来源: CSDN 作者: fangmi_ 链接: https://blog.csdn.net/fangmi_/article/details/104024803

指针、数据类型 、const

橙三吉。 提交于 2019-12-23 17:02:55
从右往左读,遇到p就替换为“p 是一个”,遇到*就替换为“指向” 1.const int p; 读法:p是一个常量整型 2.const int* p; 读法:p是一个指向整型常量的指针 3.int const* p; 读法:p是一个指向整型常量的指针 4.int * const p; 读法:p是一个常量指针,指向整型 5.const int * const p; 读法:p是一个常量指针,指向整型常量 6.int const * const p; 读法:p是一个常量指针,指向整型常量 来源: CSDN 作者: pingxiaozhao 链接: https://blog.csdn.net/pingxiaozhao/article/details/103665840

C/C++指针,预处理

和自甴很熟 提交于 2019-12-04 05:30:32
C/C++指针 int a; int* p = &a; // 指向a地址的指针*p 1、与const一起的时候   char * const p; // 指针不可变,也就是指针只能指向一个地址char* p的指针;   char const * p; // 所指内容不可改,也就是 p是常量字符串   char const * const p; // 内容和指针都不能改   const char * const p; // 同上...内容和指针不能改    2、str[]和 str的区别 #include <iostream> using namespace std; int main() { char str1[] = "abc"; char str2[] = "abc"; const char str3[] = "abc"; const char str4[] = "abc"; const char *str5 = "abc"; const char *str6 = "abc"; char *str7 = "abc"; char *str8 = "abc"; cout << ( str1 == str2 ) << endl; cout << ( str3 == str4 ) << endl; cout << ( str5 == str6 ) << endl; cout << (

操作符优先顺序

∥☆過路亽.° 提交于 2019-12-03 20:15:57
优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[整型表达式] 左到右 () 圆括号 (表达式)/函数名(形参表) . 成员选择(对象) 对象.成员名 -> 成员选择(指针) 对象指针->成员名 2 - 负号运算符 -算术类型表达式 右到左 单目运算符 (type) 强制类型转换 (纯量数据类型)纯量表达式 ++ 自增运算符 ++纯量类型可修改左值表达式 单目运算符 -- 自减运算符 --纯量类型可修改左值表达式 单目运算符 * 取值运算符 *指针类型表达式 单目运算符 & 取地址运算符 &表达式 单目运算符 ! 逻辑非运算符 !纯量类型表达式 单目运算符 ~ 按位取反运算符 ~整型表达式 单目运算符 sizeof 长度运算符 sizeof 表达式 sizeof(类型) 3 / 除 表达式/表达式 左到右 双目运算符 * 乘 表达式*表达式 双目运算符 % 余数(取模) 整型表达式%整型表达式 双目运算符 4 + 加 表达式+表达式 左到右 双目运算符 - 减 表达式-表达式 双目运算符 5 << 左移 整型表达式<<整型表达式 左到右 双目运算符 >> 右移 整型表达式>>整型表达式 双目运算符 6 > 大于 表达式>表达式 左到右 双目运算符 >= 大于等于 表达式>=表达式 双目运算符 < 小于 表达式<表达式 双目运算符 <= 小于等于

设给定一组整型数组,求它们的平均值及最大值

匿名 (未验证) 提交于 2019-12-03 00:22:01
设给定一组整型数组,求它们的平均值及最大值 /* 1. 设给定一组整型数组,求它们的平均值及最大值。 */ //创建Arr_max类 class Arr_max{ //定义最大值变量max int max; //构建一个无参构造 public Arr_max() {} //构建Max方法用于找出最大值 public int Max(int[] arr) { max = arr[0]; //用for循环进行比较 for(int x = 1; x < arr.length; x++) { if(arr[x] > max) max = arr[x]; } //return返回最大值max return max; } } //创建Arr_avg类 class Arr_avg{ //定义平均值变量avg,定义总和sun为0 int sum = 0; double avg; //构建一个无参构造 public Arr_avg() {} //构建Avg方法用于计算平均值 public double Avg(int[] arr) { //用for循环累加 for(int x = 0; x < arr.length; x++) { sum += arr[x]; } //计算平均值 avg = sum/arr.length; //return返回平均值avg return avg; } }

指针及指针变量

匿名 (未验证) 提交于 2019-12-03 00:21:02
指针是C语言中的一个重要概念,也是C语言的一个重要特色,所以学好指针对学好C语言有重要作用。本篇博客就介绍指针和指针变量的相关定义知识。 &a就是得到a的地址,其实“指针==地址”,int *p就是定义一个整型地址(指针)变量 int a=10;//整型变量存放整型值 double b=1.24;//浮点型变量存放浮点型值 int *p=&a;//整型地址变量存放整型地址值 //整型指针变量存放整型地址值 指针在定义时使用的*只是用来说明该变量为指针变量,无其他作用,而在后来的赋值运算中*为间接访问符,是用来解引用的,指针必须有解引用这一步。 int a=10; int *p=&a;//指针p保存了a的地址 *p=100;//把a的值置为100 p=&b;//指针p保存了b的地址 *p=200;//把b的值置为200 上述这段代码执行后的结果如下图: 通俗的理解为指针保存了谁的地址,就对谁解引用,就把谁的值置为几。 如果要对指针p取地址:&p, a--&a: int -- int * p--&p: int * -- int ** --- int **pp=&p;//定义一个指针pp来存放p的地址 所以要对p取地址,就会有两个**。 *pp=&a;//指针*pp保存了a的地址 **pp=1000;//把a的值置为1000 *pp=&b;//指针*pp保存了b的地址 **pp=2000