C语言中的复数C基础

时间:2023-05-27 08:24:53 其他范文 收藏本文 下载本文

C语言中的复数C基础(共8篇)由网友“黄豆”投稿提供,以下是小编给大家整理的C语言中的复数C基础,欢迎大家前来参阅。

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#includeint main(){ //定义一个常量 const int liv_num = 10; //liv_num = 18; //error 因为liv_num 被const修饰不可被直接赋值 //定义一个指针指向常量 const int *pliv_num = &liv_num; //对指向常量的指针进行转换 int * pNum = (int *)pliv_num; //进行赋值 *pNum = 20; printf(liv_num = %d , liv_num);//结果为:20system(pause); return 0;}

通过以上,我们就方向 在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 #include char seps[] = “ ”;char* trim(char* desc,char* src,char* seps);int main(int argc, char* argv[]){char szResult[1024]=“”;memset(szResult,0,1024);char strtemp[]=“ab c d e f”;printf( “%s\n\nTokens:\n”, strtemp );trim(szResult,strtemp,seps); printf( “result:%s(ok!)\n”, szResult );return 0;}//////////////////////////////////////////////////////char* trim(char* desc,char* src,char* seps){char* token=NULL; /* Establish string and get the first token: */ token = strtok(src, seps); while( token != NULL ) {/* While there are tokens in “string” */printf( “ %s\n”, token ); strcat(desc,token);/* Get next token: */token = strtok( NULL, seps ); } return desc;}

篇7:c语言中static用法总结

一、c程序存储空间布局

C程序一直由下列部分组成:

正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令;

初始化数据段(数据段)——在程序中所有赋了初值的全局变量,存放在这里,

非初始化数据段(bss段)——在程序中没有初始化的全局变量;内核将此段初始化为0。

栈——增长方向:自顶向下增长;自动变量以及每次函数调用时所需要保存的信息(返回地址;环境信息)。

堆——动态存储分。

|-----------|

|          |

|-----------|

|    栈   |

|-----------|

|    |     |

|   \|/   |

|          |

|          |

|   /|\   |

|    |     |

|-----------|

|    堆   |

|-----------|

| 未初始化|

|-----------|

| 初始化 |

|-----------|

| 正文段 |

|-----------|

二、 面向过程程序设计中的static

1. 全局静态变量

在全局变量之前加上关键字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基础
《C语言中的复数C基础.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

【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

点击下载本文文档