社区
C语言
帖子详情
对char 的理解???
catamout
2008-09-19 09:23:15
在《c和指针》中 的这句话怎么理解“只有char型变量显示声明为signed 或者unsinged 时才对它执行算数运算”?
...全文
192
9
打赏
收藏
对char 的理解???
在《c和指针》中 的这句话怎么理解“只有char型变量显示声明为signed 或者unsinged 时才对它执行算数运算”?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Soulic
2008-09-19
打赏
举报
回复
将字符变量申明为signed char或者unsinged char时,才可以对其进行像加、减等的运算,一般来说,char申明的是signed char型,所以基本上都可以进行算术运算
lsldd
2008-09-19
打赏
举报
回复
都是8bit
singed char 的range(-128, 127)
unsigned char的range为(0, 255)
既然都是整数,当然能执行算术运算
独孤过儿
2008-09-19
打赏
举报
回复
因为标准中没有显示的规定char属于unsigned还是signed,所以这个完全是依赖于编译器的实现!
hyyuanqiang
2008-09-19
打赏
举报
回复
[Quote=引用 7 楼 djwinter 的回复:]
引用 4 楼 wwlyqin 的回复:
理论上讲,对char类型进行算术操作,必须指定signed char或者unsinged char,因为,不同编译器对char有不同的默认定义规则,直接使用有可能产生误解,特别是在底层或者嵌入式编程中。
在嵌入式编程中,最保险的方法是不用char,用uint8_t之类,因为char的大小都不一定是1byte
[/Quote]
还行。。。。。。。。。。。。。。。。。。。。。。。。。。。。
djwinter
2008-09-19
打赏
举报
回复
[Quote=引用 4 楼 wwlyqin 的回复:]
理论上讲,对char类型进行算术操作,必须指定signed char或者unsinged char,因为,不同编译器对char有不同的默认定义规则,直接使用有可能产生误解,特别是在底层或者嵌入式编程中。
[/Quote]
在嵌入式编程中,最保险的方法是不用char,用uint8_t之类,因为char的大小都不一定是1byte
hedoudou
2008-09-19
打赏
举报
回复
看编译器拉,一般默认的都是signed 的
dsoyy
2008-09-19
打赏
举报
回复
缺省的char要么是signed char 要么是unsinged char,这取决于编译器。
WillWang
2008-09-19
打赏
举报
回复
理论上讲,对char类型进行算术操作,必须指定signed char或者unsinged char,因为,不同编译器对char有不同的默认定义规则,直接使用有可能产生误解,特别是在底层或者嵌入式编程中。
Darkneece
2008-09-19
打赏
举报
回复
从来没碰到过这种情况,不显示声明照计算不误
作者的编译器太老?
C/C++程序设计员应聘常见面试试题深入剖析
C/C++程序设计员应聘常见面试试题深入剖析,不看会后悔!!!!!!!!!
char
** ?
char
* ?
char
**是指向
char
*的指针,而
char
*是一个int长度的数据,你声明了它,那么这个int型的数据便会有地址,而
char
**就是这个数据的地址。 首先你
理解
一下,为什么
char
* 某些时候可以和
char
[]等价呢?因为
char
*指向的 a,实际上是 a[0]。所以 a 相当于 &a[0],它可以赋给
char
* 但是
char
*只不过是 &a[0]罢了。和
char
a[]是两回事儿,
为什么strcpy的返回值是
char
* ?
当我在笔试中面对这个题目的时候,毫不犹豫的写下这样的答案: 如果strDest的长度小于strSrc,会删除strDest,然后new一块与strSrc相同大小的内存。 由于我知道试题是出自林锐的《高质量C++编程指南》,所以回来后我查看了相关的资料,结果大失所望,以下是引自原文: 【建议6-2-1】有时候函数原本不需要返回值,但为了增加灵活性如支持链式表达, 可以附加返回值。
char
与signed
char
, unsigned
char
的区别?
一、问题的提出 今天有一个困扰的问题,就是
char
与signed
char
, unsigned
char
这三者的区别。 二、三者之间关系 1.ANSI C 提供了3种字符类型,分别是
char
、signed
char
、unsigned
char
。而不是像short、int一样只有两种(int默认就是unsigned int). 2.三者都占1个字节 3.signed
char
取值范围是 -
C语言之对
char
*与
char
[]的
理解
在我们学习的过程中,在定义字符串时常常会用
char
* 或者
char
[]去定义一个字符串,可是这两个的区别却天差地别。 今天在这里我阐述一下自己对这两种定义的
理解
与看法。 首先分别用这两种方法定义字符串,如下。
char
*str1 = "abcd1234";
char
str2[] = "abcd1234"; 接下来,我们分别对这两种方法定义的字符串进行测试。
C语言
70,037
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章