C语言中的复数C基础(共8篇)由网友“黄豆”投稿提供,以下是小编给大家整理的C语言中的复数C基础,欢迎大家前来参阅。
篇1:C语言中的复数C基础
复数:
复数比较详细的内容请参考:复数代数
C支持复数的数学计算,复数Z可以在笛卡尔坐标表示为:Z=x+y*I;其中x和y是实数,I是虚数单位,数x被称为实部,数y为虚部。在c语言中,一个复数是有浮点类型表示的实部和虚部。两部分都具有相同的类型,无论是float,double或者long double。
float _complex:实虚都为float
double _complex:实虚都为double
long double _complex:实虚都为long double
如果在c 源文件中包含了头文件 complex.h ,complex.h定义了complex 和 I宏。宏定义complex和一个关键字_complex 同义。我们可以用complex代替_complex.
下面是个简单的例子,运行在debian 7 (32bit)
代码截图:
运行结果: 详细代码:View Code
creal(x):得到复数的实部(对于 double),如果对于float,使用crealf(x),如果对于long double ,请使用 creall(x)
cimag(x):得到复数的虚部(对于double),如果对于float,使用crealf(x),如果对于long double ,请使用 creall(x)
此外还有一点值得注意的是:
cos, exp() 和 sqrt()同样也会有对应得复数方法,例如:ccos(),cexp(),csqrt()
本人是个初学者,如果博客中有任何错误或者有更好的技术知识,请多多指教!
篇2:C语言中的const
C语言的中的const,代表的含义是”不可改变的变量“,或者可以成为”伪常量“
C++中 const,被称为”一个有类型描述的常量“
const int liv_num = 10; liv_num = 18; //error 因为liv_num 被const修饰不可被直接赋值
那么,我为什么说是”伪常量“?
我们知道在c中给变量赋值,有两种方式:一种就是直接赋值;一种是间接赋值,
对于第一种方式,我们已经验证是不可以的。那么,使用间接赋值是否可以实现对liv_num的值得改变呢?
注意:一定要是.c的文件,如果使用的是.cpp的话,不会出现效果,因为c++中 const,被称为”一个有类型描述的常量“
#include
通过以上,我们就方向 在c中 const 是 ”伪常量“, 那么也说明一个问题,const是保存在 ”栈“ 中的, 如果想验证,可以使用debug,观察内存,再此不在叙述,
篇3:c语言中的1是什么意思
编译器
GCC,GNU组织开发的开源免费的编译器
MinGW,Windows操作系统下的GCC
Clang,开源的BSD协议的基于LLVM的`编译器
Visual C++:: cl.exe,Microsoft VC++自带的编译器
集成开发环境(IDE)
CodeBlocks,开源免费的C/C++ IDE
CodeLite,开源、跨平台的C/C++集成开发环境
Orwell Dev-C++,可移植的C/C++IDE
C-Free
Light Table
Visual Stdio系列
Hello World
篇4:解析C语言中的sizeof.net
一、sizeof的概念 sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等,它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大
一、sizeof的概念
sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。
二、sizeof的使用方法
1、用于数据类型
sizeof使用形式:sizeof(type)
数据类型必须用括号括住。如sizeof(int)。
2、用于变量
sizeof使用形式:sizeof(var_name)或sizeof var_name
变量名可以不用括号括住。如sizeof (var_name),sizeof var_name等都是正确形式。带括号的用法更普遍,大多数程序员采用这种形式。
注意:sizeof操作符不能用于函数类型,不完全类型或位字段。不完全类型指具有未知存储大小的数据类型,如未知存储大小的数组类型、未知内容的结构或联合类型、void类型等。
如sizeof(max)若此时变量max定义为int max,sizeof(char_v) 若此时char_v定义为char char_v [MAX]且MAX未知,sizeof(void)都不是正确形式。
三、sizeof的结果
sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。
1、若操作数具有类型char、unsigned char或signed char,其结果等于1。
ANSI C正式规定字符类型为1字节。
2、int、unsigned int 、short int、unsigned short 、long int 、unsigned long 、float、double、long double类型的sizeof 在ANSI C中没有具体规定,大小依赖于实现,一般可能分别为2、2、2、2、4、4、4、8、10,
3、当操作数是指针时,sizeof依赖于编译器。例如Microsoft C/C++7.0中,near类指针字节数为2,far、huge类指针字节数为4。一般Unix的指针字节数为4。
4、当操作数具有数组类型时,其结果是数组的总字节数。
5、联合类型操作数的sizeof是其最大字节成员的字节数。结构类型操作数的sizeof是这种类型对象的总字节数,包括任何垫补在内。
让我们看如下结构:
struct a;
在某些机器上sizeof(a)=12,而一般sizeof(char)+ sizeof(double)=9。
这是因为编译器在考虑对齐问题时,在结构中插入空位以控制各成员对象的地址对齐。如double类型的结构成员x要放在被4整除的地址。
6、如果操作数是函数中的数组形参或函数类型的形参,sizeof给出其指针的大小。
四、sizeof与其他操作符的关系
sizeof的优先级为2级,比/、%等3级运算符优先级高。它可以与其他操作符一起组成表达式。如i*sizeof(int);其中i为int类型变量。
五、sizeof的主要用途
1、sizeof操作符的一个主要用途是与存储分配和I/O系统那样的例程进行通信。例如:
void *malloc(size_t size),
size_t fread(void * ptr,size_t size,size_t nmemb,FILE * stream)。
2、sizeof的另一个的主要用途是计算数组中元素的个数。例如:
void * memset(void * s,int c,sizeof(s))。
六、建议
由于操作数的字节数在实现时可能出现变化,建议在涉及到操作数字节大小时用ziseof来代替常量计算。
原文转自:www.ltesting.net
篇5:C语言中函数的返回值
如果某个函数从一个地方返回时有返回值,而从另一个地方返回时没有返回值,该函数并不非法,但可能是一种出问题的征兆,”
这句话觉得有些难以理解。
于是写了段测试代码,如下:
#include
int f(int i) {
if (1)
return;
else
return 1;
}
main(void) {
int i = -10;
printf(“%d\n”, f(i));
}
/*
* 本程序用gcc编译没有问题,
* 运行结果如下:
* -10
*/
篇6:C语言中trim的实现
C语言中trim的实现
作者:老包米
描述
自己用ATL写了个COM,不支持MFC,所以无法用CString,但支持C编码,遇到字符串(字符数组),想去掉字符串中的空格,C下没有TRIM函数,找又没找到,几行代码自己写吧,往后大家万一遇到用着也方便。
说明
1.seps是需要去除的字符数组,可以有几个字符,也可以一个。这里是空格,最常用的。
2.参数也很简单,第一个是结果数组指针,第二个是原字符数组指针,第三个是需要去掉的字符数组指针。返回的是结果数组指针。
源代码
#include “stdafx.h”#include
篇7:c语言中static用法总结
一、c程序存储空间布局
C程序一直由下列部分组成:
正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令;
初始化数据段(数据段)——在程序中所有赋了初值的全局变量,存放在这里,
非初始化数据段(bss段)——在程序中没有初始化的全局变量;内核将此段初始化为0。
栈——增长方向:自顶向下增长;自动变量以及每次函数调用时所需要保存的信息(返回地址;环境信息)。
堆——动态存储分。
|-----------|| |
|-----------|
| 栈 |
|-----------|
| | |
| \|/ |
| |
| |
| /|\ |
| | |
|-----------|
| 堆 |
|-----------|
| 未初始化|
|-----------|
| 初始化 |
|-----------|
| 正文段 |
|-----------|
二、 面向过程程序设计中的static1. 全局静态变量
在全局变量之前加上关键字static,全局变量就被定义成为一个全局静态变量。内存中的位置:静态存储区(静态存储区在整个程序运行期间都存在)
初始化:未经初始化的全局静态变量会被程序自动初始化为0(自动对象的值是任意的,除非他被显示初始化)
作用域:全局静态变量在声明他的文件之外是不可见的。准确地讲从定义之处开始到文件结尾。
看下面关于作用域的程序:
查看原始代码
//teststatic1.c
voiddisplay;
externintn;
intmain()
{
n=20;
printf(“%d\n”,n);
display();
return0;
}
查看原始代码
//teststatic2.c
staticintn;//定义全局静态变量,自动初始化为0,仅在本文件中可见
voiddisplay()
{
n++;
printf(“%d\n”,n);
}
文件分别编译通过,但link的时候teststatic1.c中的变量n找不到定义,产生错误。定义全局静态变量的好处:
<1>不会被其他文件所访问,修改
<2>其他文件中可以使用相同名字的变量,不会发生冲突。
2. 局部静态变量
在局部变量之前加上关键字static,局部变量就被定义成为一个局部静态变量。
内存中的位置:静态存储区
初始化:未经初始化的全局静态变量会被程序自动初始化为0(自动对象的值是任意的,除非他被显示初始化)
作用域:作用域仍为局部作用域,当定义它的函数或者语句块结束的时候,作用域随之结束,
注:当static用来修饰局部变量的时候,它就改变了局部变量的存储位置,从原来的栈中存放改为静态存储区。但是局部静态变量在离开作用域之后,并没有被销毁,而是仍然驻留在内存当中,直到程序结束,只不过我们不能再对他进行访问。当static用来修饰全局变量的时候,它就改变了全局变量的作用域(在声明他的文件之外是不可见的),但是没有改变它的存放位置,还是在静态存储区中。
3. 静态函数在函数的返回类型前加上关键字static,函数就被定义成为静态函数。
函数的定义和声明默认情况下是extern的,但静态函数只是在声明他的文件当中可见,不能被其他文件所用。
例如:
查看原始代码
//teststatic1.c
voiddisplay();
staticvoidstaticdis();
intmain()
{
display();
staticdis();
renturn0;
}
查看原始代码
//teststatic2.c
voiddisplay()
{
staticdis();
printf(“display() has been called\n”);
}
staticvoidstaticdis()
{
printf(“staticDis() has been called\n”);
}
文件分别编译通过,但是连接的时候找不到函数staticdis()的定义,产生错误。
定义静态函数的好处:
<1> 其他文件中可以定义相同名字的函数,不会发生冲突
<2> 静态函数不能被其他文件所用。
存储说明符auto,register,extern,static,对应两种存储期:自动存储期和静态存储期。
auto和register对应自动存储期。具有自动存储期的变量在进入声明该变量的程序块时被建立,它在该程序块活动时存在,退出该程序块时撤销。
关键字extern和static用来说明具有静态存储期的变量和函数。用static声明的局部变量具有静态存储持续期(static storage duration),或静态范围(static extent)。虽然他的值在函数调用之间保持有效,但是其名字的可视性仍限制在其局部域内。静态局部对象在程序执行到该对象的声明处时被首次初始化。
由于static变量的以上特性,可实现一些特定功能。1. 统计次数功能
声明函数的一个局部变量,并设为static类型,作为一个计数器,这样函数每次被调用的时候就可以进行计数。这是统计函数被调用次数的最好的办法,因为这个变量是和函数息息相关的,而函数可能在多个不同的地方被调用,所以从调用者的角度来统计比较困难。代码如下:
查看原始代码
voidcount();
intmain()
{
inti;
for(i=1; i<=3; i++)
count();
return0;
}
voidcount()
{
staticnum=0;
num++;
printf(“ I have been called %d”,num,“times\n”);
}
输出结果为:
I have been called 1 times.
C语言程序可以看成由一系列外部对象构成,这些外部对象可能是变量或函数。而内部变量是指定义在函数内部的函数参数及变量。外部变量定义在函数之外,因此可以在许多函数中使用。由于C语言不允许在一个函数中定义其它函数,因此函数本身只能是“外部的”。
由于C语言代码是以文件为单位来组织的,在一个源程序所有源文件中,一个外部变量或函数只能在某个文件中定义一次,而其它文件可以通过extern声明来访问它(定义外部变量或函数的源文件中也可以包含对该外部变量的extern声明)。
篇8:define在c语言中是什么意思
预处理命令以“#”号开头,如包含命令#include,宏定义命令#define等。一般都放在源文件的前面,它们称为预处理部分。
所谓预处理是指在进行编译之前所作的'工作。预处理是C语言的一个重要功能,它由预处理程序负责完成。当对一个源文件进行编译时,系统将自动引用预处理程序对源程序中的预处理部分作处理,处理完毕自动进入对源程序的编译。
在C或C++语言源程序中允许用一个标识符来表示一个字符串,称为“宏”。被定义为“宏”的标识符称为“宏名”。在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换,这称为“宏代换”或“宏展开”。宏定义是由源程序中的宏定义命令完成的。宏代换是由预处理程序自动完成的。
★ 概念小班教案
★ 高中英语语法教学
★ 优秀英语语法课件
★ 关于什么是数概念
★ 复数知识点总结
★ 初三英语语法总结
【C语言中的复数C基础(共8篇)】相关文章:
高考复习讲与练(1)名词与冠词2022-08-31
初中英语作文怎么讲2022-12-12
人教版高一数学教学设计2022-08-24
初一英语语法总结2023-02-19
高三英语冲刺讲座32023-11-25
英语冠词有哪些2024-05-20
英语语言基础知识论文2022-09-15
用--浅谈高考英语卷的语法和词汇 (中学英语教学论文)2022-05-02
初中英语中考作文范文2023-01-27
初一英语上册作文2022-09-17