C语言中如何把感叹号!赋值给字符型常量

2020-11-29 19:21:31 字数 5416 阅读 7272

1楼:匿名用户

赋值给一个字符型常量是什么意思?c语言中只有变量才能够赋值,如一个字符型变量ch:

char ch='!'

如是想用一个符号来表示一个常量,可以通过宏定义语句实现,如定义ch为常量'!':

#define ch '!'

这样程序中就可用ch表示感叹号了。但是这样的定义在程序中只能做一次,即ch定义后不能再修改。

2楼:天秤小乞

楼主都说是字符型常量了,常量是不可以被改变的。

如果是字符型变量,赋值如下:

3楼:u无力哀叹丶

字符型常量是只可读不可写的

只能把它赋值给一个字符变量

char c = '!';

c语言中为什么用宏定义一个字符常量(一个字母)可以赋值给字符变量?

4楼:匿名用户

1、因为宏定义实质是一种替换,虽然看起来是字符,实际上最终是被替换成其他常熟或者值。

2、宏定义中的标识符都采用大写,这是编程中一种约定俗成的习惯:

1)宏替换不做语法检查,所以在使用的时候要格外小心2)宏替换通常在文件开头部分,写在函数的花括号外边,作用域为其后的程序,直到用 问好

3)# u n d e f 命令终止宏定义的作用域4)不要在字符串中使用宏,如果宏名出现在字符串中,那么将按字符串进行处理.

5楼:关韶侍荏

因为宏是一个简单替换,所以c语言中用宏定义一个字符常量(一个字母)可以赋值给字符变量。实质是在编译之前会把宏替换掉,然后再编译。

例如:#define a 5

void main()

在编译之前a已经被替换成5了,所以就可以赋值给num。

c语言中字符串常量或字符常量是否可以赋值给double类型的变量

6楼:匿名用户

1)字符常量赋值给double类型变

量,使用强制转换

doubled=(double)'a';//将'a'的ascii码值97赋值给d,d=97

2)字符串赋值给double类型变量,使用atof函数#incluce//此头文件中包含atof的声明//...

doubled;

char*s="3.14";

d=atof(s);//atof函数把字符串转换成浮点数

7楼:匿名用户

字符可以,字符串不行。

c语言中输入感叹号加一个字符是什么意思,比如!a,!b

8楼:匿名用户

哥们我简单点跟你说,纯手工啊。代表逻辑取反。

在逻辑里面,非0的数代表真,0代表假。回

比如,int a=1;那么答 if(a) {};里面的语句是执行的,因为里面是非零数。if(!a)则表示假

同理 int a=0;那么if(a),则表示假,if(!a)表示真。

9楼:西西哩的小马甲

就是相反的意思

du。出现zhi于字符串中,或者以'!'形式出现时,dao代表其本意,即字符常量。专

一、电属脑常见问题

主板不启动,开机无显示,有显卡报警声。

故障原因:一般是显卡松动或显卡损坏。

处理办法:打开机箱,把显卡重新插好即可。要检查agp插槽内是否有小异物,否则会使显卡不能插接到位;对于使用语音报警的主板,应仔细辨别语音提示的内容,再根据内容解决相应故障。

如果以上办法处理后还报警,就可能是显卡的芯片坏了,更换或修理显卡。如果开机后听到"嘀"的一声自检通过,显示器正常但就是没有图像,把该显卡插在其他主板上,使用正常,那就是显卡与主板不兼容,应该更换显卡。

10楼:匿名用户

你好bai

~_~!是“非

du”,非0即1,非1即0【不等于0的都zhi当做1处理,dao但是!0=1】

举个例子内哈~容_~

int x=0;

while(!x)

问循环执行了几次。

你可以这样子分析:x=0,!x=1,循环执行一次,x自增1;x=1,!x=0,循环条件不满足,不执行。

所以,循环只执行一次。

祝你好运~_~

11楼:德克and德华

!是“非”的意思。

不等于0(注意,是不等于0的所有值)的值经专过!运算后,会得到0。

0值经过!运属算后,会得到1。

例如,int a = -1;

int b = !a;

int c = !b;

printf("%d %d\n", b,c);

会输出0 1

12楼:匿名用户

!是非的意思

!在一个布尔类型前就是逻辑运算符,对其取反

!在整型或是其他类型前是对该亦是内容取反,即算术每位取反,之后还可以参与运算。

13楼:匿名用户

逻辑非返回值是0或者1

如果变量是非零,那么返回值是0

如果是零,返回值是1

14楼:暮霭晨曦

逻辑非操作,也就是取反的意思,取它的反面。

15楼:匿名用户

not表示!a 即a==0

16楼:小裙子

感叹号表示非、不、否的意思

c语言中为什么用宏定义一个字符常量(一个字母)可以赋值给字符变量,

17楼:匿名用户

1、因为宏定义实质是一种替换,虽然看起来是字符,实际上最终是被替换成其他常熟或者值。

2、宏定义中的标识符都采用大写,这是编程中一种约定俗成的习惯:

1)宏替换不做语法检查,所以在使用的时候要格外小心2)宏替换通常在文件开头部分,写在函数的花括号外边,作用域为其后的程序,直到用 问好

3)# u n d e f 命令终止宏定义的作用域4)不要在字符串中使用宏,如果宏名出现在字符串中,那么将按字符串进行处理.

18楼:匿名用户

因为宏是一个简单替换,所以c语言中用宏定义一个字符常量(一个字母)可以赋值给字符变量。实质是在编译之前会把宏替换掉,然后再编译。

例如:#definea5

voidmain()

在编译之前a已经被替换成5了,所以就可以赋值给num。

19楼:匿名用户

汉字根据编码方式不同,所占的大小2~4个字节不等,汉字赋值给字符变量,只显示第一个字节,出问号就不奇怪了

用汉字赋值给字符数数组然后在显示的话,一定要考虑编码方式问题,你的终端支持哪种就选择哪种,否则乱码

20楼:匿名用户

#define namehello "wendy"

#include

#include

void main()

21楼:匿名用户

c里面不支持汉子,你用vc++6.0试试,那个可以显示汉子

在c语言中,“不能将一个常量赋值给一个表达式”这句话该怎么理解 20

22楼:沧海雄风

比如 赋值一般是 int a=5;那么就是赋值但是你要是 x+y=5;这样显然是不对的这个是数学中的等式 不是c语言中的赋值

有问题请追问 满意记得采纳

23楼:匿名用户

所谓赋值,例如int x ,y; x=6; x是有地址,在内存中是有空间的,你可以用&x来取x的地址,但是表达式,例如x+y,这个整个表达式,是没有地址的,所以不能给它赋值。

24楼:张超

x+y=5你这样写可能只会把y的值负值为5如果你定义int (x+y) 这样可以这样写(x+y)=5;这样是可以的

25楼:匿名用户

只能是变量才能赋值的x+y是表达式所以不能赋值

c语言 我为什么不能直接用 = 把一个字符变量的值赋值给另一个字符变量

26楼:天蓝云扬

直接赋值字符变量或者相互赋值是没有问题的,程序崩溃可能是其它原因。

c语言中输入感叹号加一个字符是什么意思?

27楼:西西哩的小马甲

就是相反的意思。

出现于字符串中,或者以'!'形式出现时,代表其本意,即字符常量。

一、电脑常见问题

主板不启动,开机无显示,有显卡报警声。

故障原因:一般是显卡松动或显卡损坏。

处理办法:打开机箱,把显卡重新插好即可。要检查agp插槽内是否有小异物,否则会使显卡不能插接到位;对于使用语音报警的主板,应仔细辨别语音提示的内容,再根据内容解决相应故障。

如果以上办法处理后还报警,就可能是显卡的芯片坏了,更换或修理显卡。如果开机后听到"嘀"的一声自检通过,显示器正常但就是没有图像,把该显卡插在其他主板上,使用正常,那就是显卡与主板不兼容,应该更换显卡。

c语言如何定义一个常量字符串

28楼:马小芳

定义:用双引号(“”)括起来的0个或者多个字符组成的序列存储:每个字符串尾自动加一个 ‘\0’ 作为字符串结束标志(1)在c语言中没有专门的字符串变量,如果想将一个字符串存放在变量中以便保存,必须使用字符数组,即用一个字符型数组来存放一个字符串,数组中每一个元素存放一个字符。

例如“char a[10]="love".”

(2)在程序中,字符串常量会生成一个“指向字符的常量指针”。当一个字符串常量出现于一个表达式中时,表达式所使用的值就是这些字符所存储的地址,而不是这些字符本身。因此,你可以把字符串常量赋值给一个“指向字符 的指针”,例如:

char *a = "123" ; a = "abc";,后者指向这些字符所存储的地址。但是,你不能把字符串常量赋值给一个字符数组,因为字符串常量的直接值是一个指针,而不是这些字符本身。例如:

char a[5];a[0] = "a";就是错误的,报错结果:invalid conversion from 'const char*' to 'char'。

例如:char a[10]="love",的意思就是用字符串“love”来初始化字符数组a的内存空间,而数组的首地址也就是“love”字符串的地址。

29楼:

【方式1】宏定义

#definestring"hello,world"

【方式2】字符数组

charstr=;//大括号可以去掉//等价于

charstr=;

【方式3】字符指针

char*pstr="hello,world";