C语言宏定义 PI 3.14159 中3.14159代表的是字符串吗?这些是数字又不是字符

如题所述

不是字符串,C中字符串需要用双引号引起来。追问

可是不带参数的宏定义形式是:#define 宏名 字符串 ,按这样理解3.14159不就是对应字符串吗?

追答

宏是不分类型的,宏只是替换

不带参数的宏只是原样替换,这里的字符串不是指的C++语言的字符串型(当然C没有字符串型)

而是理解为我们说的字符串。因为C中的字符串一定是用双引号引起来的。

C语言的字符串其实是一个以'\0'作为结束标记的字符序列。

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-02-25
#define?
预处理的define命令是用来定于宏和宏函数的,说白了,在编译的时候所有预处理会优先编译运行。
我这么说吧。
比如说——
源文件:

#include <stdio.h>

#define SYSTEM_NAME "Ho,My God!" /*定于一个宏*/

int main(int argc,char * argv[])
{
puts("1." SYSTEM_NAME);
printf("2." SYSTEM_NAME "\n");

return 0;

}
编译器会这样做:
#include <stdio.h>

int main(int argc,char * argv[])
{
puts("1." "Ho,My God!"); /*替换所有的宏名*/

printf("2." "Ho,My God!" "\n");

return 0;

}
说白了就是替换作用,不属于变量,属于字面量。
另外,如果你是在问#define P1 3.14159 中3.14159代表的是字符串吗?那么你建议你先看看字符串章,C语言中所有的字符串是用""括起来的,这个表示的是浮点数。
第2个回答  2014-02-25
#define s "12345" // 这是字符串
#define PI 3.1425927 // 这是double类型常量
#define N 10 // 这是int类型常量
请比较。
第3个回答  2021-12-22
#define 宏名 字符串,这是预处理指令中宏定义的格式,所以3.14159应该是字符串

...中3.14159代表的是字符串吗?这些是数字又不是字符
不是字符串,C中字符串需要用双引号引起来。

在宏定义 #define PI 3.14159中,用宏名PI代替一个 A) 单精度数 B) 双...
答案是D 编译预处理的时候,宏名PI将被字符串“3.14159“代替,这一替换过程称为宏展开 宏的定义格式为 define 宏名 字符串或者字符

在宏定义#define PI3.14159中,用宏名PI代替一个
因为宏定义define做的是最简单的文本替换,单纯的就是把这行以后的代码中,出现的PI换成3.14159这个文本(也就是字符串)。

在#define PI 3.14159中,PI表示的是
是符号常量。在程序中出现PI时,所有的PI都用3.14159代替。这样可以避免多次的写3.14159而出现错误,也可以减少程序中重复书写数字的工作量。同时如果程序中需要修改3.14159时,只需要修改#define中的PI就可以了,大大提高了程序的可移植性。

在宏定义#define PI 3.1415926中,用宏名PI代替了一个()。
C语言中有明确规定,宏定义是利用#define命令,用一个指定的标识代替一个字符串。对应到题目上就是#define 标识符 字符串,所以PI是标识符,3.1415926是字符串。所以这题选B 关于C选项,如果3.1415926不在宏函数定义中,那么它就是一个常量,只是因为它在#define命令中,所以它是一个字符串。A选项...

#define PI=3.14159是不是c语句?
是c的语句。叫 宏定义。但是写错了一点点。应写成:define PI 3.14159 用空格,不要用等号。那么,意思是 定义 PI 是 宏常量,数值等于 3.14159。 预编译期间,程序中的 PI 将由 3.14159 替代。

在宏定义#define PI 3.1415926中,用宏名PI代替了一个()。
我刚刚翻了《C程序设计(第三版)》,里面对宏的具体定义是: #define 标识符 字符串。。。我觉得应该果断相信书里面的定义 追问 我也翻了翻书,38页明确写着用标识符代表一个常量…… 追答 第204页写着宏定义的一般形式,第205页最右下角【说明】中的(3)写着宏定义是用宏明代替一个‘字符串’,也就是简单置...

c语言问题 #define PI 3.14159f {float b=3.0f; c=a*
define PI 3.14159和 define PI 3.14159f 的效果是一样的,define预定义的代码,实际上只是在预编译时,简单的替换到代码中,然后再编译。至于数字后要不要加类型,这是根据需要定的。define PI 3f ...float a = 4 * PI; \/\/ ==>就相当于 float a=4 * 3f;这里的计算结果直接就是高...

在c语言中什么叫宏定义的常量
在C语言中,宏定义的常量就是通过如下格式来定义的一个不带参数的常量:define 标识符 字符串 举例说明如下:include<stdio.h>#define PI 3.14 \/\/ 宏定义常量,即PI=3.14void main(){ printf("%f", PI); \/\/ 调用宏定义常量,程序在编译阶段进行宏替换,即在编译阶段将PI替换为3.1...

在C中,字面常量和符号常量有什么区别?
define PI 3.14159 \/*PI就是符号常量*\/ include \\"stdio.h\\"main(){ float r,area;scanf(\\"%f\\",&r);area=PI*r*r;printf(\\"area=%f\\\\n\\",area);} 符号常量PI代表一串字符 3.14159只要程序中出PI的地方就用这一串字符替换.而且符号常量有一个好处就是它一改全改.include \\"stdio....

相似回答