c语言用
① c语言中%的作用
头文件前使用#,表示预处理,加入到工程中一并编译。
其他用法:
在printf中的%后面的那个#是用来格式说明的,
如果在g,G,f,e或者E代码前加一个#,可以确保显示一个小数点(即使没有小数位),
在o之前加上则输出八进制,
在p,x或者X之前则确保输出十六进制
例如上面的那个就是把地址按照十六进制形势输出.
在编译时,#的作用是,把后面的变元转化为带引号的串.
例如上面的#define FUN(a) cout<<#a;代表的就是把a当作一个字符串输出,比如FUN(123\n);将会输出123以及一个回车.
##的作用才是在编译的时候把前后连接起来.
例如:
#include
#define concat(a,b) a##b
int main(void)
{
int xy=10;
printf("%d",concat(x,y));
//即是: printf("%d",xy);
return 0;
}
② 计算机C语言有什么用啊
用处:C语言是一种计算机程序设计语言。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
特征:
1、C语言是高级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
2、C语言是结构式语言。结构式语言的显着特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。
3、C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
4、C语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。而且计算功能、逻辑判断功能也比较强大。
5、C语言适用范围大。适合于多种操作系统,如Windows、DOS、UNIX、LINUX等等;也适用于多种机型。C语言对编写需要硬件进行操作的场合,明显优于其它高级语言,有一些大型应用软件也是用C语言编写的。
(2)c语言用扩展阅读:
优点:
1、简洁紧凑、灵活方便
C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
2、运算符丰富
C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
3、数据类型丰富
C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。
③ C语言中,用"->"和用"."的区别
c语言中,##表示把两个宏参数贴合在一起,而单个#的功能是将其后面的宏参数进行字符串化操作。即,
#include<stdio.h>
#define f(a,b) a##b
#define g(a) #a
#define h(a) g(a)
int main()
{
printf("%s\n",h(f(1,2)));//输出12
printf("%s\n",g(f(1,2)));//输出f(1,2)
return 0;
}
##被称为连接符(直接贴合),用来将两个宏参数连接为一个宏参数。而单个#的功能是将其后面的宏参数进行字符串化操作,简单地说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号,使其成为字符串。
④ C语言中{}作用
取决于在scanf中使用还是在printf中使用。
在scanf中使用,则添加了*的部分会被忽略,不会被参数获取。
例如:int a,b;char b[10];scanf("%d%*s",&a,b);输入为:12 abc那么12将会读取到变量a中,但是后面的abc将在读取之后抛弃,不赋予任何变量(例如这里的字符数组b)
在printf中使用,表示用后面的形参替代的位置,实现动态格式输出。
例如:
printf("%*s",10,s);/意思是输出字符串s,但至少占10个位置,不足的在字符串s左边补空格,这里等同于printf("%10s",s);/
(4)c语言用扩展阅读:
C语言%*s用法
1、在scanf中使用,则添加了*的部分会被忽略(跳过),不会被参数获取。
例如:
int a,b;
char b[10];
scanf("%d%*s",&a,b);
输入为:
12 abc
那么12将会读取到变量a中,但是后面的abc将在读取之后抛弃,不赋予任何变量(例如这里的字符数组b)
用*和扫描集配合,可以从输入中只选出需要的内容,而忽略其余的东西。
另外,也常用于清空缓冲区。
2、在printf中使用,*表示用后面的形参替代*的位置,实现动态格式输出。
例如:
printf("%*s", 10, s); /*意思是输出字符串s,但至少占10个位置,不足的在字符串s左边补空格,这里等同于printf("%10s", s);*/
printf("%.*s
",int,str) ;
// %.*s 其中的.*表示显示的精度 对字符串输出(s)类型来说就是宽度
// 这个*代表的值由后面的参数列表中的整数型(int)值给出
例如:
printf("%.*s ", 1, "abc");// 输出a
printf("%.*s ", 2, "abc");// 输出ab
printf("%.*s ", 3, "abc");// 输出abc >3是一样的效果 因为输出类型type = s,遇到'