c语言程序冒号的作用是什么,C语言里面的冒号
看下面一段代码:
struct test {
int body1:1;
int body2:2;
};
这里提出的问题是,结构体里面的冒号的作用是什么。这种冒号的用法不是我随便杜撰的,而是在实际的代码里面看到的。
在C++的函数定义时,参数列表之后可以使用冒号来给变量赋值,这里的冒号是不是也起着给结构体成员赋默认值的作用呢?是与不是,通过测试来揭晓。
首先,我写了一个测试驱动函数test来专门进行测试,如下:
void test()
{
structtest struction;
printf("body1:%d; body2:%d\n", struction.body1,struction.body2);
}
在定义结构体变量struction时,我没有给它赋值,以此来测试是不是给它的成员赋了默认值{1,2}。该函数在编译后,运行的结果如下:
body1:0; body2:0
失望了,不是我们认为的默认赋值。
那么修改变量的定义,给它们赋值后再打印,如:struct test struction = {1,2};
这次,程序编译后的运行结果是:
body1:-1; body2:-2
这次的结果怎么解释?是不是冒号起一个取负数的作用,后面的数字没用?还是其它,再取几组数字试试:
struct test struction = {1,2};
结果:body1:-1; body2:-2
struct test struction = {1,4};
结果:编译报错,在struct test struction = {1,2}赋值语句处:warning:overflow in implicit constant version。
居然出现了溢出,应该是在把4赋给struction.body2时溢出。这下,有结果了,冒号后面的数字表示的是数位。
据我推测,冒号在这里的用处主要为限制使用位数:
x:num,表示x只有其最后的num个bit位有效,且在计算时是用的“补码”表示。
如x:3,如果x赋值为7,则x值为“-1”(第三位为1,表示负数,其它位取反加1,为01,则结果为-1)。
另外,结果的正负是与变量本身的定义有关。
如x为Int时,x:3,赋值为7,则实际结果为-1,若x为 unsigned int,则x:3,赋值为7时,结果为7.
c语言程序冒号的作用是什么,C语言里面的冒号相关推荐
- DSB算法C语言程序,单片机中使用DSB温度传感器C语言程序.doc
单片机中使用DSB温度传感器C语言程序 单片机中使用DS18B20温度传感器C语言程序(参考1) /************************************************** ...
- c语言程序头文件作用,C语言头文件
C语言头文件教程 C 语言的头文件一般都是 .h 做为结尾的. C语言头文件详解 语法 #include 参数 参数 描述 filename 我们需要引入的头文件的名称. 说明 C 语言的头文件一般都 ...
- 在c语言中 函数的作用是什么,C语言程序中函数的定义
C语言程序中函数的定义 C语言的函数问题是困扰很多学者的问题的,c程序中什么是函数呢?下面啦小编为大家精心推荐的c程序中函数的定义,希望能够对您有所帮助. C语言读书笔记--函数 先来看看函数的一般形 ...
- c语言中单词的作用与形式,C语言基础教程:单词的用法与规则
在C语言中,单词是由若干个有序的字符组成的,单词的集合称为词汇.C语言的单词有如下几种:标识符.关键字.运算符.分隔符.常量.字符串和注释符. 下面对上述7种单词的词法规则逐一详述,有些单词,例如,关 ...
- c语言程序女设计教学效果分析,C语言程序设计的教学论文
C语言程序设计的教学论文 1C语言程序设计教学方法研究 1.1理论教学 对于大多数课程而言,从宏观上将课程知识点及其关联讲授给学生非常必要,这便于学生更加系统深刻地理解所学内容.作为教材讲解C语言程序 ...
- c语言程序代码有什么用,用c语言编写的代码程序是什么?
前言继承是OOP设计中的重要概念.在C++语言中,派生类继承基类有三种继承方式:私有继承(private).保护继承(protected)和公有继承(public).一.继承规则继承是C++中的重要特 ...
- 下列不属于C语言程序开发步骤,程序设计技术(C语言)-中国大学mooc-题库零氪...
第1章 程序设计基础 第1章 选择题 1.以下不属于算法基本特征的是( ). A.有穷性 B.有效性 C.可行性 D.有一个或多个输出 2.N-S图与传统流程图比较,主要优点是( ) A.杜绝了程序的 ...
- c语言程序中的错误可分为,C语言程序常见错误与调试方法(1)
<C语言程序常见错误与调试方法(1)>由会员分享,可在线阅读,更多相关<C语言程序常见错误与调试方法(1)(17页珍藏版)>请在人人文库网上搜索. 1.C语言程序常见错误与调试 ...
- c语言程序的核心思想是什么,c语言程序设计心得(2)
C语言编程学习心得篇一 学习C语言已经一年多,对C也算得上半个入门者,期间也写过一些自娱自乐的代码.其实个人认为无论学习什么语言,最重要的是掌握习编程思想,然而C语言一种学习编程思想的基础语言.所以, ...
最新文章
- signature=89b7a6bcfac55abae5ac369dafee29f4,Capecitabine
- 工作中常用的第三放的框架
- Deep Learning Face Representation by Joint Identification-Verification
- 湖南大学第十六届程序设计竞赛 B Yuki with emofunc and playf 同余最短路
- 移动发布手机病毒警示信息 发现六种新型病毒
- c#winform演练 ktv项目 在dataGridView中显示歌曲列表
- 过磅系统_简讯:崇义商砼公司开展无人值守过磅系统业务培训等二则
- echarts 系列一
- php实现弱类型,PHP内核探索:弱类型变量的实现
- JSJQuery必备技能
- Android不同版本下Notification创建方法
- vs2013的mfc开发上位机
- java解析shp文件
- 【Web开发】HTML颜色代码表
- bbs.php168,PHP168与PHPWIND深度联手 CMS+BBS整合将成趋势
- 30分钟轻松在华为云上搭建网站应用(零基础手把手教学)
- 【训练记录】2013-2014 Petrozavodsk Winter Training Camp, Moscow SU Trinity Contest @homework-7
- 操作系统从MBR到加载内核的开机过程
- css:table-cell的妙用
- LeetCode 871. 最低加油次数
热门文章
- kali linux教程:配置 Kali 的 apt 命令在线安装包的源为阿里云
- HTML5与CSS3基础教程学习笔记【第三章 基本HTML结构】
- opencv(三)对图像进行简单算术运算(加减乘除)
- Gitlab Runner 部署
- html像素小鸟小游戏,微信小游戏-像素鸟游戏
- RISC-V E300 SOC架构介绍——1.总体介绍
- c语言小程序飞机大战,飞机大战微信小游戏:经典像素飞机大战小程序,点开即玩...
- 小米如何使用远程管理FTP操作电脑和手机的文件
- 李宏毅2021机器学习笔记——Regression
- java课程设计计算器 uml简图,计算器的用例建模