c语言操作符是什么 50
3个回答
展开全部
你可以把操作符理解为内置的,最基础的函数,它们无法完全被若干个未使用同类型操作符的函数所替代。比如加法运算符,你就不可能写出一个不用+或-的函数来实现任何情况下的加法功能。
运算符和函数还有一个重要区别。函数本身有一段代码,程序执行时,遇到函数时,会先将函数的参数入栈,再跳到函数的代码来运行。而操作符则是在本地直接运算。
比如
#include<stdio.h>
#include<string.h>
int add(int a,int b)
{return a+b;
}
void main()
{
int a,b;
b=a+1;
b=add(a,1);
}
编译后,查看汇编码如下:
11: b=a+1;
0040D458 mov eax,dword ptr [ebp-4] //取a的值
0040D45B add eax,1 //加上1
0040D45E mov dword ptr [ebp-8],eax //和赋给b
12: b=add(a,1);
0040D461 push 1 //参数1入栈
0040D463 mov ecx,dword ptr [ebp-4] //将参数a移到寄存器
0040D466 push ecx //参数a入栈
0040D467 call @ILT+0(add) (00401005) //调用函数add
0040D46C add esp,8 //释放参数占用的内存
0040D46F mov dword ptr [ebp-8],eax //结果赋给b
明显看出函数的调用过程比运算符要复杂。
运算符和函数还有一个重要区别。函数本身有一段代码,程序执行时,遇到函数时,会先将函数的参数入栈,再跳到函数的代码来运行。而操作符则是在本地直接运算。
比如
#include<stdio.h>
#include<string.h>
int add(int a,int b)
{return a+b;
}
void main()
{
int a,b;
b=a+1;
b=add(a,1);
}
编译后,查看汇编码如下:
11: b=a+1;
0040D458 mov eax,dword ptr [ebp-4] //取a的值
0040D45B add eax,1 //加上1
0040D45E mov dword ptr [ebp-8],eax //和赋给b
12: b=add(a,1);
0040D461 push 1 //参数1入栈
0040D463 mov ecx,dword ptr [ebp-4] //将参数a移到寄存器
0040D466 push ecx //参数a入栈
0040D467 call @ILT+0(add) (00401005) //调用函数add
0040D46C add esp,8 //释放参数占用的内存
0040D46F mov dword ptr [ebp-8],eax //结果赋给b
明显看出函数的调用过程比运算符要复杂。
展开全部
操作符,我的理解就是数学运算、逻辑运算、位运算的符号啊....
而sizeof 则是C语言提供的一个基础的测试某种数据类型所占空间长度的《库函数》(注意是库函数)。
汇编则是针对于某种CPU而言的程序设计语言,不具有广泛的适用和移植性...
不懂可以HI我...
而sizeof 则是C语言提供的一个基础的测试某种数据类型所占空间长度的《库函数》(注意是库函数)。
汇编则是针对于某种CPU而言的程序设计语言,不具有广泛的适用和移植性...
不懂可以HI我...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询