精华内容
下载资源
问答
  • C语言中->是什么意思啊?

    千次阅读 2021-01-17 14:10:43
    /*这句话的意思就是取出p所指向的结构体中包含的数据项a赋值给x*/ /*由于此时p指向A,因而 p->a == A.a,也就是1*/ 对于一开始的问题 p = p->next;这应该出现在C语言的链表,这里的next应该是一个与p同类型的结构体...

    展开全部

    ->是一个整体,它是用于指向结构体、C++中的class等含有子数据的指针用e5a48de588b662616964757a686964616f31333366303130来取子数据。换种说法,如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到“->”.

    举个例子:

    struct Data

    {

    int a,b,c;

    }; /*定义结构体*/

    struct Data * p;/*定义结构体指针*/

    struct Data A = {1,2,3};/*声明变量A*/

    int x;/*声明一个变量x*/

    p = &A ; /*让p指向A*/

    x = p->a;/*这句话的意思就是取出p所指向的结构体中包含的数据项a赋值给x*/

    /*由于此时p指向A,因而 p->a == A.a,也就是1*/

    对于一开始的问题 p = p->next;这应该出现在C语言的链表,这里的next应该是一个与p同类型的结构体指针,其定义格式应该是:

    struct Data

    {

    int a;

    struct Data * next;

    };/*定义结构体*/

    …………

    main()

    {

    struct Data * p;/*声明指针变量p*/

    ……

    p = p->next;/*将next中的值赋给p*/

    }

    链表指针是C语言的一个难点,但也是重点,学懂了非常有用。要仔细讲就必须先讲变量、指针。

    592f0430e0942f4713b73e2fd378af25.png

    扩展资料:

    链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。

    链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。

    每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,操作复杂。

    由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而线性表和顺序表相应的时间复杂度分别是O(logn)和O(1)。

    使用链表结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。

    但是链表失去了数组随机读取的优点,同时链表由于增加了结点的指针域,空间开销比较大。

    链表最明显的好处就是,常规数组排列关联项目的方式可能不同于这些数据项目在记忆体或磁盘上顺序,数据的存取往往要在不同的排列顺序中转换。

    链表允许插入和移除表上任意位置上的节点,但是不允许随机存取。链表有很多种不同的类型:单向链表,双向链表以及循环链表。

    链表可以在多种编程语言中实现。像Lisp和Scheme这样的语言的内建数据类型中就包含了链表的存取和操作。

    程序语言或面向对象语言,如C,C++和Java依靠易变工具来生成链表。

    展开全文
  • 在c语言中=!是什么意思?

    千次阅读 2021-01-26 18:49:24
    展开全部1、c语言中=!是两32313133353236313431303231363533e58685e5aeb931333366303066个运算符摆放在一起,“=”是赋值运算符,“!”逻辑非运算符;2、逻辑操作符一般将其操作数视为条件表达式,返回结果为Bool...

    展开全部

    1、c语言中=!是两32313133353236313431303231363533e58685e5aeb931333366303066个运算符摆放在一起,“=”是赋值运算符,“!”逻辑非运算符;

    2、逻辑操作符一般将其操作数视为条件表达式,返回结果为Bool类型;

    3、首先对其操作数求值,若结果为0,则条件为假(false),否则为真(true);

    4、优先级上“!”先于“=”;所有比如有下面的式子,int i;i=!5;

    5、这个理解为:根据运算符优先级,!先于=;首先5作为!的操作数,求值!5的结果是bool型的false。

    6、然后false隐士转换成int型,即0;所以i里面的值是整形0。

    ffa9a6179866bf95d181ee87926067f2.png

    扩展资料:

    C语言运算

    1、C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。

    2、在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单;

    3、但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全

    特有特点

    1、C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。

    2、C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。

    3、不同的变量类型可以用结构体(struct)组合在一起。

    4、只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。

    5、部份的变量类型可以转换,例如整型和字符型变量。

    6、通过指针(pointer),C语言可以容易的对存储器进行低级控制。

    7、预编译处理(preprocessor)让C语言的编译更具有弹性。

    展开全文
  • C99概述

    千次阅读 2013-02-11 16:37:39
    C99什么 C99是标准ISO/IEC 9899:1999的简称。 c99是在c89的基础上发展起来的,增加了基本数据类型,关键字和一些系统函数等。其实在初学阶段C89(ANSI C)和C99的区别是不易察觉的,所以不必太在意这个。 ...

    C99是什么

    C99是标准 ISO/IEC 9899:1999的简称。
    c99是在c89的基础上发展起来的,增加了基本 数据类型,关键字和一些 系统函数等。其实在初学阶段C89(ANSI C)和C99的区别是不易察觉的,所以不必太在意这个。
    C99有一部分是对于大 字符集的优化(很多资料上写的是ANSI标准化),还加入了一些 数据库函数,是C89之后的标准,我们用的C是C89标准的,C++是C89编写的,目前的C99标准其实在以前的 编译器中就或多或少的支持了,目前完全支持的有这些:GCC、 Borland C++等。

    编辑本段C99标准的新特性

    在ANSI标准化后,C语言的标准在一段相当的时间内都保持不变,尽管C++继续在改进。(实际上,Normative Amendment1在1995年已经开发了一个新的C语言版本。但是这个版本很少为人所知。)标准在90年代才经历了改进,这就是ISO9899:1999(1999年出版)。这个版本就是通常提及的C99。它被ANSI于2000年3月采用。
    在C99中包括的特性有:
    编译器限制增加了, 比如源程序每行要求至少支持到 4095   字节变量名函数名的要求支持到 63 字节 (extern 要求支持到 31)。
    预处理增强了。例如:
    宏支持取参数 #define Macro(...) __VA_ARGS__
    使用宏的时候,参数如果不写,宏里用 #,## 这样的东西会扩展成空串。(以前会出错的)
    支持 // 行注释(这个特性实际上在C89的很多 编译器上已经被支持了)
    增加了新关键字 restrict,inline,_Complex,_Imaginary,_Bool
    支持 long long,long double _Complex,float _Complex 这样的类型
    支持 <: :> <% %> %: %:%: ,等等奇怪的符号替代,D&E 里提过这个
    支持了不定长的 数组数组的长度就可以用 变量了。声明类型的时候呢,就用 int a[*] 这样的写法。不过考虑到效率和实现,这玩意并不是一个新类型。所以就不能用在全局里,或者 struct union 里面,如果你用了这样的东西,goto 语句就受限制了。
    变量声明不必放在语句块的开头,for 语句提倡这么写 for(int i=0;i<100;++i) 就是说,int i 的声明放在里面,i 只在 for 里面有效。(VC没有遵守这条标准,i 在 for 外也有效;但vc2005里已经默认是i在外面不可见了,但有编译选项可以设置。)
    当一个类似结构的东西需要临时构造的时候,可以用 (type_name){xx,xx,xx} 这有点像 C++ 的 构造函数
    初始化结构的时候现在可以这样写:
    struct {int a[3], b;} hehe[] = { [0].a = {1}, [1].a = 2 };
    struct {int a, b, c, d;} hehe = { .a = 1, .c = 3, 4, .b = 5} // 3,4 是对 .c,.d 的赋值
    字符串里面,\u 支持 unicode 的字符
    支持 16 进制的浮点数的描述
    所以 printf和scanf 的格式化串多了支持 ll / LL (VC6 里用的 I64) 对应新的 long long 类型。
    浮点数的内部数据描述支持了新标准,这个可以用 #pragma   编译器指定
    除了已经有的 __line__ __file__ 以外,又支持了一个 __func__ 可以得到当前的函数名
    对于非常数的 表达式,也允许 编译器做化简
    修改了对于 / % 处理负数上的定义, 比如老的标准里 -22 / 7 = -3,-22 % 7 = -1 而现在 -22 / 7 = -4,-22 % 7 = 6
    取消了不写函数返回类型默认就是 int 的规定
    允许 struct 定义的最后一个 数组写做 [] 不指定其长度描述
    const const int i; 将被当作 const int i; 处理
    增加和修改了一些标准头文件。 比如定义 bool 的 <stdbool.h>,定义一些标准长度的 int 的 <inttypes.h>,定义复数的 <complex.h> 定义宽字符的 <wctype.h> 有点泛型味道的数学函数 <tgmath.h> 跟浮点数有关的 <fenv.h>。< stdarg.h> 里多了一个 va_copy 可以复制 ... 的参数。<time.h> 里多了个 struct tmx 对 struct tm 做了扩展
    输入输出对宽字符还有长整数等做了相应的支持
    long double_Complex;long double_Imaginary。
    <complex.h>头文件中定义了complex和imaginary宏,并将它们扩展为_Complex和_Imaginary,因此在编写新的 应用程序时,应该使用<stdbool.h>头文件中的complex和imaginary宏。
    long long int
    C99标准中引进了long long int(-(2e63 - 1)至2e63 - 1)和unsigned long long int(0 - 2e64 - 1)。long long int能够支持的整数长度为64位。
    展开全文
  • 会提示在for循环里定义变量...在.vscode的c_cpp_properties.json中修改cStandard版本为c99,如下所示: { "configurations": [ { "name": "Linux", "includePath": [ "${workspaceFolder}/**" ], "defines":

    会提示在for循环里定义变量报错,可以使用如下方法解决
    在.vscode的c_cpp_properties.json中修改cStandard版本为c99,如下所示:

    {
        "configurations": [
            {
                "name": "Linux",
                "includePath": [
                    "${workspaceFolder}/**"
                ],
                "defines": [],
                "compilerPath": "/usr/bin/gcc",
                "cStandard": "c99",
                "cppStandard": "gnu++98",
                "intelliSenseMode": "linux-gcc-x64"
            }
        ],
        "version": 4
    }
    
    展开全文
  • 1970 年,美国贝尔实验室(Bell Labs)的 Ken Thompson 将 BCPL 进行了修改,并取名叫做 B 语言,意思是提取 CPL 的精华(Boiling CPL down to its basic good features)。并用 B 语言写了第一个 UNIX 系统。 1973 年...
  • 那么编译时Implicit declaration of function ‘XXXX’ is invalid in C99警告就产生了。类似于下图 你点击跳转是跳不过去的,虽然在.c中你写了函数,但是.h里面没有声明。所以只需要声明一下就可以了。 ...
  • C语言中%c,%s分别代表什么意思

    千次阅读 2021-03-07 16:47:32
    X对应的是ABCDEF(不输出前缀0x) 5、%f(lf) 单精度浮点数和双精度浮点数用f(lf在C99开始加入标准,意思和f相同) 6、%e/E 科学计数法表示的数,此处"e"的大小写代表在输出时用的“e”的大小写 7、%g/G 有效位数,如:...
  • digit_C语言 digit是什么意思

    千次阅读 2021-05-21 03:45:54
    C语言 digit是什么意思1、C语言digit是数位;2、一个字节有8位2进制组成;3、C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。扩展资料:C语言中所有格式化类型的定义:1、%d/i接受整数值并将...
  • 传统(指C90)C标准中是没有布尔类型的,对于C来说,非0...一般的做法无非就是通过宏,自己定义一个布尔类型,但为什么C99新增的布尔类型叫_Bool,而不是bool或BOOL: #define BOOL int or #define bool int 如果 C99
  • c99和c98的差异

    2021-05-22 15:38:52
    enum{STATE_0, STATE_1, STATE_2, STATE_N, NUM_STATES}; typedef void (*p_func_t)(void); p_func_t jumptable[NUM_STATES] = { [STATE_1] = 0, [STATE_0] = 0, [STATE_2] = 0,... } 这样的枚举使用c98 和c99是 支持的
  • 标准怎么说 C99 N1256草案 6.7.1“存储类说明符”说, static是“存储类说明符”。 6.2.2 / 3“标识符的连接”表示static表示internal linkage : 若是对象或函数的文件做用域标识符的声明包含静态的存储类说明符,...
  • c语言intmain()是什么意思

    千次阅读 2021-05-19 04:13:06
    一、main()函数的形式在最新的 C99 标准中,只有以下两种定义方式是正确的:int main( void ) /* 无参数形式 */{...return 0;}int main( int argc, char *argv[] ) /* 带参数形式 */{...return 0;...
  • C语言中的函数是什么意思

    千次阅读 2021-05-21 04:54:35
    C语言中的函数是什么意思简单来说函数就是c语言的模块,一块块的,有较强的独立性,但是可以相互调用。这是c和c++区分的地方,c++面向对象,对象独立完成功能,无需调用。一个c程序就可以是一个函数,里面再包含n个...
  • X对应的是ABCDEF(不输出前缀0x) 5、%f(lf) 单精度浮点数和双精度浮点数用f(lf在C99开始加入标准,意思和f相同) 6、%e/E 科学计数法表示的数,此处"e"的大小写代表在输出时用的“e”的大小写 7、%g/G 有效位数,如%....
  • ANSI、C99、C11 标准区别详解

    千次阅读 2020-04-20 15:30:10
    在 KEIL 中使用的是 ANSIC C 标准(C89 标准),定义变量一定要放在语句块开头,在 KEIL 中也可以选择 C99 标准。 二、C99 标准 C99 标准是在 ANSI 标准基础上新增了一些特性,如: (1)支持不定长的数组,即数组...
  • 将C标准更改为c99后,使用UNIX time.h的错误我对cmake非常陌生,并用新的可执行文件和一些库文件扩展了一个演示项目。我在编译演示项目时没有问题。但是,我的新项目需要使用c99标准进行编译,突然间,我得到了time....
  • } o指的是什么意思?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!c语言中 一段程式printf("%o\n",a); } o指的是什么意思?是以八进位制的形势输出...
  • !... %a是什么意思?看一些资料说是占位符,然后我在一个学习视频里看到的和我自己在网上编译出来的是完全不同的效果,好像不知道...在C/C++里面%a,%A代表 读入一个浮点值(仅C99有效),那么在pyhton中又是什么意思呢?
  • C语言拾遗-C语言基础-C89、C99与C11

    千次阅读 2019-06-04 17:05:47
    C语言为什么有很多编译器 通过上面的介绍可以发现,C语言并没有一个官方机构,也不属于哪个公司,它只有一个制定标准的委员会,任何其他组织或者个人都可以开发C语言的编译器,而这个编译器要遵守哪个C语言标准,...
  • &在c语言中什么意思

    2021-01-17 14:10:43
    ”在c语言中是按e5a48de588b63231313335323631343130323136353331333365653931位与运算符的意思。c语言中的&的用法1、用于指针赋值#includeint main(){int a = 2;int*b;//定义一个整形指针b = &a;//给指针...
  • 满意答案tht1282013.04.04采纳率:51%...意思就是读取一个字符但并不赋值给变量。下面是详细的格式说明,请参考:%a-----------------读入一个浮点值(仅C99有效)%A-----------------同上%c-----------------读入一...
  • keil(arm)中配置c99方法 及 C99特性

    万次阅读 2016-05-25 17:19:18
    misc controls:--c99c99特性: 在ANSI的标准确立后,C语言的规范在一段时间内没有大的变动,然而C++在自己的标准化创建过程中继续发展壮大。《标准修正案一》在1994年为C语言创建了一个新标准,但是只修正了...
  • typedef在c语言中是什么意思

    千次阅读 2021-05-23 12:30:39
    在c语言中,typedef的意思是将一个自己命名的类型用已经有的类型来代替。C语言允许用户使用 typedef 关键字来定义自己习惯的数据类型名称,来替代系统默认的基本类型名称、数组类型名称、指针类型名称与用户自定义的...
  • C语言的C89、C99和C11标准(上)

    千次阅读 2019-09-01 15:53:20
    一、C99针对C89的改变 1.增加了restrict指针 通过restrict修饰指针,可以确保两个指针不能指向同样的内存空间。 如memcpy函数在C99标准下的定义为 void *memcpy(void *restrict s1, const void *restrict s2,size_t ...
  • c语言中%是什么意思

    2021-01-26 18:49:27
    c语言中%是什么意思%在c语言中有两种释义,一是求余符号,经常会用到判断一个数是不是能被另一个整除。二是引导符,用于引导输入输出项表列的格式。C语言运算符号的种类编辑1 算术运算符用于各类数值运算。包括加(+)...
  • C99标准

    2017-10-29 18:30:07
    /* [Error] 'for' loop initial declarations are only allowed in C99 mode 我估计意思是在for()中定义变量,只能在C99标准里*/ sum +=i; printf("\nTotal of the first %d number is %Ld\n",count,sum); ...
  • C语言规范:C89、C90、C95、C99

    千次阅读 2011-08-05 16:48:48
    1970 年,美国贝尔实验室(Bell Labs)的 Ken Thompson 将 BCPL 进行了修改,并取名叫做 B 语言,意思是提取 CPL 的精华(Boiling CPL down to its basic good features)。并用 B 语言写了第一个 UNIX 系统。 1973 年...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,606
精华内容 3,042
关键字:

c99是什么意思