c语言字母字符参与运算,c语言字符串可以参加运算吗?

最佳答案

可以运算,但字串连接要用函数不能直接用+

追问:

比如怎么运算?能写一个表达式吗?

追答:

可以,如char *s="123456";char *s1;s1=s+2; //字串的表达式运算,结果s1为3456

追问:

#define A 3.1是定义常量还是变量?如果程序中函数体定义一个变量也用大写的A标识符并且初始化值,那么A的值是宏定义的还是局部变量的值?

追答:

#define A 3.1中的A肯定是常量,若你有了这个宏,在函数中不可能再将A用于变量了,宏是预处理中做的,它是最优先的,在预处理阶段,所有程序中的A将会被替换为3.1,你若将它写成变量,肯定是语法错,如在程序中写float A=1.2;在预处理时,会替换成float 3.1=1.2; ///语法错

追问:

我还有一个问题,字符串用%d打印的结果是什么根据什么来算不出的?#define A "abcd" {printf("%d",A);输出这个字符串的结果是什么?我知道字符是根据ascll码取值的 不知道字符串用%d打印的结果怎么算出来的?

追答:

在C语言中,格式化字符必须与参数一致,否则输出的结果是"不可预见的"(我在这里说过多次了)你用%d输出字串的内容,结果是不确定的,若你一定要深入研究,也得不到一个固定的结果,因为它输出的是一个地址,而这个地址与你的编译器/操作系统/运行环境都有关,你可以认为它是一个随机数,若你有能力,可以用olldbg或Cheat Engine跟踪结果的生成

追答:

可以肯定的告诉你%d输出字串的值,与ASCII毫无关系

追问:

偶偶 谢谢你总烦到你

追问:

c语言中变量不赋值可以参加运算吗?比如 int a=15,b; b=a++,a++,b-a;printf("%d",b);也会运行结果 怎么算的?

追答:

C中,变量不赋值可以参加运算的(它可以编译运行),但结果是不确定的但你的程序中,a,b都是有赋值的int a=15; //这个是初始化b虽然没有初始化,但你的b=a++,a++,b-a;就是赋值且因为=优先于逗号(,)运算,且++是后加,所以先计算b=a++;再a++及b-a(这个不影响结果)所以最终a=17b=15

追问:

scanf函数前面可以赋值变量吗?比如b=scanf("%d",&a);发现这样也可以编译,也会有一个值 这算是什么表达式?

追答:

scanf是一个函数,它有返回值的,它的原型为int scanf(const char *format[, address, ...]);它的返回值有以下定义On success, scanf returns the number of input fields successfully scanned, converted, and stored. The return value does not include scanned fields that were not stored.On error:if no fields were stored, scanf returns 0.if scanf attempts to read at end-of-file or at end-of-string, it returns EOF.

追问:

谢谢你

追问:

是不是说只要是函数都有返回值?无论是主函数 子函数还是头文件库函数包括的函数都有返回值?

追答:

当然不是,有些函数是没有返回值的,它被定义成void类型的所以C标准函数都可以通过它的手册(开发工具中一般会有)来查它的定义windwos下的API可以通过MSDN查到

最佳答案由网友  whoami1978  提供

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值