C语言中的%是个什么意思啊 有什么用啊
C语言中的“&”符号是取地址的意思,就是取出&后面的变量的地址。scanf("%f",&grade)就是输入一个实数然后把它送到grade所指向的内存单元。
while(scanf("%f",&grade)!=EOF&&grade>=0.0&&grade<=100.0)这是一个While循环语句,如果括号里的表达式是“真”(就是表达式是对的)的时候就执行后面的语句。而此处整个语句是表示:输入的实数不等于EOF;而且输入的实数grade大于或者等于0.0,同时输入的实数grade小于100的时候就执行后面的循环体语句。
->是一个整体,它是用于指向结构体、C++中的class等含有子数据的指针用来取子数据。换种说法,如果我们在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语言的一个难点,但也是重点,学懂了非常有用。要仔细讲就必须先讲变量、指针。
扩展资料:链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。
每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,操作复杂。
由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而线性表和顺序表相应的时间复杂度分别是O(logn)和O(1)。
使用链表结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。
但是链表失去了数组随机读取的优点,同时链表由于增加了结点的指针域,空间开销比较大。
链表最明显的好处就是,常规数组排列关联项目的方式可能不同于这些数据项目在记忆体或磁盘上顺序,数据的存取往往要在不同的排列顺序中转换。
链表允许插入和移除表上任意位置上的节点,但是不允许随机存取。链表有很多种不同的类型:单向链表,双向链表以及循环链表。
链表可以在多种编程语言中实现。像Lisp和Scheme这样的语言的内建数据类型中就包含了链表的存取和操作。
程序语言或面向对象语言,如C,C++和Java依靠易变工具来生成链表。
参考资料:链表–百度百科
%是求模的意思,两边必须是整数类型的,求模常用符号为mod,就是我们小学学的求余运算符。
例如50%23=4,因为余数为4,所以在程序中必须保证两边为整数才是这个意思。
扩展资料
“模”是“Mod”的音译,模运算多应用于程序编写中。 Mod的含义为求余。模运算在数论和程序设计中都有着广泛的应用,从奇偶数的判别到素数的判别,从模幂运算到最大公约数的求法,从孙子问题到凯撒密码问题,无不充斥着模运算的身影。虽然很多数论教材上对模运算都有一定的介绍,但多数都是以纯理论为主,对于模运算在程序设计中的应用涉及不多。
基本性质
(1)若p|(a-b),则a≡b (% p)。例如 11 ≡ 4 (% 7), 18 ≡ 4(% 7)
(2)(a % p)=(b % p)意味a≡b (% p)
(3)对称性:a≡b (% p)等价于b≡a (% p)
(4)传递性:若a≡b (% p)且b≡c (% p) ,则a≡c (% p)
参考资料模运算_百度百科
%有两种示意
1、%是求余符号 经常会用到判断一个数是不是能被另一个整除。
如:7%3=1(7除以3 余下1,) 1%3=1(1除以3除不尽 余下1);
如判断一个m是奇数还是偶数 if(m%2==0) printf("偶数")。
2、引导符,用于引导输入输出项表列的格式。
例如:printf("%d%c%f",a,b,c);意思就是a以整型输出 b以字符型 输出 c以实型输出。
扩展资料
基本特性
1、高级语言:它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。
2、结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。
这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
3、代码级别的跨平台:由于标准的存在,使得几乎同样的C代码可用于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要进行硬件操作的场合,优于其它高级语言。
4、使用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持。
但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。
一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。
参考资料:百度百科-C语言
%是求模的意思,两边必须是整数类型的,求模常用符号为mod,就是我们小学学的求余运算符。
例如50%23=4,因为余数为4,就是这样的,在程序中必须保证两边为整数才是这个意思。
当不是这种形式时: 例如:%d就成了控制语句了 %d,%ld,%f,%lf,%-md,%.mlf等。
扩展资料:
在计算机编程中,百分号(modulus)有时代表求余数的意思,看以下C++程序:
#include<iostream>
using namespace std;
int main()
{short q=10%3;//输出10除以3的余数。
cout<<q;
system("pause");}
这个程序在Dev Cpp4.9中通过,该程序最后输出1,即10除以3的余数。
应特别注意的是,在c语言编程中%两侧的函数都应该为整型。
还有转换字符的作用
%% 印出百分比符号,不转换。
%c 整数转成对应的 ASCII 字元。
%d 整数转成十进位。
%f 倍精确度数字转成浮点数。
%o 整数转成八进位。
%s 整数转成字符串。
%x 整数转成小写十六进位。
%X 整数转成大写十六进位。
参考资料:%–百度百科
%是求模的意思,两边必须是整数类型的,它的作用是求模常用符号为mod,就是求余运算符。
1、例如50%23=4,因为余数为4,就是这样的,在程序中必须保证两边为整数才是这个意思。
2、当不是这种形式时: 例如:%d就成了控制语句了 %d,%ld,%f,%lf,%-md,%.mlf等,这个应该详细了解的。
扩展资料
C的运算符有以下几类:
1.算术运算符:* - + / %
2.关系运算符: > < == != >= <=
3.逻辑运算符:! && ||
4.位运算符:<< >> ~ | ^ &
5.赋值运算符:=及扩展赋值运算符
6.条件运算符:?:
7.逗号运算符:,
8.指针运算符:*和&
9.求字节数运算符:sizeof
10.强制类型转换运算符:(类型)
参考资料来源:百度百科-运算符
%是求模的意思,两边必须是整数类型的,求模常用符号为mod,就是我们小学学的求余运算符。 例如50%23=4,因为余数为4,就是这样的,在程序中必须保证两边为整数才是这个意思。 当不是这种形式时: 例如:%d就成了控制语句了 %d,%ld,%f,%lf,%-md,%.mlf等,这个应该详细了解的,在这里也说不清楚,建议找资料看一下。