c语言字符串变量中字符型变量=‘1’是错的吗?

C语言中,是如何赋值的?a=b+c=1为什么是错的?_百度知道
C语言中,是如何赋值的?a=b+c=1为什么是错的?
我有更好的答案
赋值端左面只能是一个存储数据的符号。。你这里1赋值给b+c,这是不行的。b+c不是一个存储数据的符号。我建议你买本清华大学C++版的工具书,谭浩强出的。。那本书里比较详细。
采纳率:31%
/同上a=a+7;//可以---------------------------------------b++=7是可以运算的,因为7是const也就是常量类型,不可以对其赋值,7+b+c含有常量,对其赋值也是错误的c=7+b++=a+7;不符合a=7+b+c=a+7; // &#47
VB中赋值的话,应该是&变量=值&的形式,只能是&a=1&
因为赋值是赋值给变量的,而b+c不是变量……a=b+c是对的,但是b+c=1是错误的
在c语言中只能给变量赋值,不能给表达式赋值,你这个式子的运算顺序是从右到左,1是不能赋值给表达式b+c的
其他2条回答
为您推荐:
其他类似问题
c语言的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。C语言的这些元素你都知道吗?
我的图书馆
C语言的这些元素你都知道吗?
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSI C,作为C语言最初的标准。1.C语言的数据类型 基本类型a.整型:整型 int Visual c++6.0 中占4 个字节; Turbo c 2.0占 2个字节短整型 short int 2个字节长整型 long int 4个字节无符号短整型 unsigned short int 2个字节无符号长整型 unsigned long int 4个字节b.字符型:charc.实型:单精度 float 占4个字节,32位。双精度 double 占8位字节,64位构造类型a.数组 arrayb.结构体 structc.共用体 union指针类型 *空类型 void2.逻辑运算!(非) ,&&(与), ||(或)3二维数组定义: 类型说明符 数组名[常量表达式1][常量表达式2]注:a.存储器单元是一维线性排列的。是按行存放的。b.对于全部元素赋初值,则数组第一维的长度可以省略,但是第二维不能省。如:int a[][3]= {1,2,3,4,5,6}c.可以只对部分元素赋初值,没赋初值的元素自动取0值。d.一个二维数组可以分解为一个多个一维数组。例:a[3][4]可分解为三个一维数组,其数组名分别为a[0],a[1],a[2],而这个一维数组都有4个元素。如一维数组a[0]有元素为:a[0][0],a[0][1],a[0][2],a[0][3]4.字符数组c中没有字符串数据类型,是用字符数组来表示字符串变量的。字符串总是以'\0'作为串结束符,所以,字符串就是一种以‘\0’结束的字符数组。 常用的字符串处理函数(在stdio.h中与string.h中):puts(字符数组名)---把字符数组中的字符串输出到显示器。gets(字符串数组名)--从输入设备得到字符串。strcat(字符数组名1,字符数组名2)--把字符数组中2中的字符串连接到字符数组1中字符串的后面,并删除字符串1后的串标志'\0';strcpy(字符数组名1,字符数组名2)--把字符数组2中的字符串复制到字符数组1中,串结束标识'\0'也一同复制。strcmp(字符数组名1,字符数组名2)--按照ASCII码顺序比较两个数组中的字符串,并由函数返回比较结果。strlen(字符数组名)---返回字符实际长度(不含字符'\0')5.函数对于被调用函数的声明和函数一般形式:类型说明符 被调函数名(类型,类型,..); 注:如果被调用函数的返回值是整型或字符型时,可以不对被调用函数作说明而直接调用。如果被调用函数定义出现在主调用函数之前,在主函数可以不对被调用函数作说明而直接调用。6.变量的作用域及存储特性a.局部变量:又称内部变量。在函数内作定义说明,其作用域仅限于函数内。b.全局变量:又称外部变量,它是在函数外部定义的变量。它不属于哪一个函数,而属于一个源程序文件。其作用域是整个源程序。在函数中使用全局变量,一般应作全局变量说明。只有在函数中经过说明的全局变量才能使用,说明符为:extern.但是在一个函数之前定义的全局变量,在该函数内可以再加以说明。 变量的存储特性:a.auto(自动变量)默认。为动态存储,既只有在使用它才分配存储单元,开始它的生命周期。b.extern(外部变量) 为静态存储,外部变量等同与全局变量。当一个源程序由若干个源文件组成时,在一个源文件中定义的外部变量在其它的源文件中也有效。c.static(静态变量) 为静态存储方式,可分为静态局变量和静态全局变量。 静态局变量:在局部变量的说明前再加上static说明。d.寄存器变量(register).当一个变量反复访问时,就可将此变量声明为register。放在cpu的寄存器中。别注:只有局部自变量和形式参数才能定义为寄存器变量。使用个数很有限。对于Truboc 、MS C等使用是按自动变量处理的。7.内部函数和外部函数内部函数--一个只能被本文件中的其他函数所调用的函数。形式:static 类型 函数名(形参表)外部函数---如果在函数标识符前面加上extern,形式:extern int fun(int a,int b) 其中,extern为默认。8.指针变量声明[存储类型] 类型标识符 *指针变量名;存储类型] 类型标识符 *指针变量名=变量地址;(注:int *p; 表示:变量p表示指针变量;另外P可用来存放整数变量的地址。指针变量本身存储的都是地址,每个指针(地址)占4个字节(在VC中),例:char *p, size(p)为==4 );9.指针运算a.指针赋值: 如: int *p=&x; 也可在程序中对其初始化:int x,*p; .. p=&x注意:在没赋初值时,指针变量的内容是不确定的。如果此时引用指针指向的变量,将会产生不可预料的后果。 如:int *p; *p=100; //错误,p没有初始化。b.指针的加减:指针变量加1不能是简单的地址加1,加上一sizof(指针变量所指类型)。10.宏#define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言的学习很不利。#define命令剖析#define的概念#define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。该命令有两种格式:一种是简单的宏定义,另一种是带参数的宏定义。简单的宏定义:#define
带参数的宏定义#define
() 一个标识符被宏定义后,该标识符便是一个宏名。这时,在程序中出现的是宏名,在该程序被编译前,先将宏名用被定义的字符串替换,这称为宏替换,替换后才进行编译,宏替换是简单的替换。这是今天的内容,希望大家有所收获,学有所成,写出属于自己的程序!!!如果对这方面有兴趣的可以加群:,大家一起学习交流。群内还有更多学习资料、视频,免费课......本文为头条号作者发布,不代表今日头条立场。
TA的最新馆藏
喜欢该文的人也喜欢"c语言字符型什么意思"的糗事
你可能感兴趣:
糗事百科为大家收集了很多的c语言字符型什么意思的糗事,各种关于c语言字符型什么意思的爆笑经历、尴尬时刻和开心视频,想持续关注c语言字符型什么意思的糗事就收藏本页吧.
扫码下载糗事百科app关于C语言中字符型变量_百度知道
关于C语言中字符型变量
由于字符型和正型在内存中所占字节数不同,因此当整型量按字符型量处理时,只有低八位字节参与处理。
这句话具体怎么解释?
我的理解是,在C语言中双精度型在内存中才占有8字节,而字符变量被分配的内存空间只有一个字节,如果一个整型量按字符型量处理时不...
我有更好的答案
\n&quot,那个整形数会被截断;else
printf(&数据已被截断,也就是将那个整形数的二进制的低8位保留下来.char 至少8位wchar_t 16位字符short 至少16位int 至少和short一样大long 至少有32位,且保证位数不小于intlong long 至少有64位int i = 123456;),其他的位丢掉,这种做法会导致数据的精度降低;/将i赋值给cif( int(c) == i)
printf(&数据未被截断, c = %d是说如果将一个整形数当做字符型类处理的话, int(c), i = %d&;char c =
采纳率:68%
来自团队:
“由于字符型和正型在内存中所占字节数不同,因此当整型量按字符型量处理时,只有低八位字节参与处理。”==&“由于字符型和正型在内存中所占字节数不同,因此当整型量按字符型量处理时,只有低八bit位(一个字节)参与处理。”
你说的没错,将整型按照字符型处理时确实只占有一个字节,但是有件事你需要搞清楚:内存中字符型只占有1个字节,而整形却占有4个字节(说法不一,以具体机器为主),当你将字符型按整形处理时,整形数据只有最后一个字节是有效的,其余的字节均填充0,而反过来,当你将整形按照字符型处理时,整形的前三个字节会被截断,内存中只保留整形数据的最后一个字节!一般情况下,我们只将字符型转变成整形处理(整形提升原理),但是也可以将整形转变成字符型处理(此处必须强制转换),而这种转换通常是由于问题的需要而进行的,通常不要这样做,不知道能不能帮助你!
当刚开始学语言的时候,不要太在意它们对内存是不是有什么影响,你只要记得那个类型占多少内存空间就行。比如CHAR
1个字节。INT SHORT 2个字节,FLOAT DOUBLE 4个字节,LONG 8个字节。所以不要太在意那方面,在那你没达到一定技术水平之前应当不要考虑,但是思想是好的。
int 是16位的,char是8位的,当整型量按字符型量处理时,会把int 前面的八位舍弃掉,所以当int  大于255的数字时,强制转换成char,前面八位就没有了,精度变小了。所以转换的时候要小心,可能转换后得到的值并不是你所想要的值
在C语言中双精度型在内存中才占有2字节
其他4条回答
为您推荐:
其他类似问题
您可能关注的内容
c语言的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。c语言字符型和字符串型的区别?_百度知道
c语言字符型和字符串型的区别?
例如:char c。为什么最后一个错误啊?声明字符串常量是不是不能用&a&是错误的;c='a';char&abcd&是正确的,而c=&啊;c=&也是错误的?应该用什么我是初学者,书上有这么一段:“不要将字符常量与单字符的字符串常量混淆
在ANSI C中,初始化指针时所创建的字符串常量被定义为只读。如果试图通过指针修改这个字符串的值,程序就会出现未定义的行为。在有些编译器中,字符串常量被存放在只允许读取的文本段中,以防止它被修改。数组也可以用字符串常量进行初始化:
Char a[]=”abcdefg”;
如指针相反,由字符串常量初始化的数组是可以修改的。其中的单个字符在以后可以改变。
(1)修改指针字符串中的数据
[cpp] view plaincopy#include &string.h&
#include &stdio.h&
int main(){
char *buf=&ABCDEFG&;
printf(&buf=%c\n&,buf[2]);
buf[2]='M';
printf(&end!\n&);
编译通过了,但是会看到程序运行时出错了(2)修改数组字符串中的数据[cpp] view plaincopy#include &string.h&
#include &stdio.h&
int main(){
char buf[]=&ABCDEFG&;
printf(&buf=%c\n&,buf[2]);
buf[2]='M';
printf(&buf=%s\n&,buf);
printf(&end!\n&);
可以看到程序运行正常.
采纳率:92%
来自团队:
/;string中存放的就是字符串&;
//了;%s& 声明字符变量c,系统为c分配一个字符的空间c=&%c/n,&c1),如果是打印字符串型,只需把%c改为%s即可.例:printf(&quot:char string[4];string=&abcd&quot.打印字符型的时候,printf(&quot.声明字符串常量也能用&abcd&abcd&这是是错误的. abcd要占4的字符的空间;.要用到数组.(如果你没学到数组,等你学了以后就明白了)例;char&quot,c中放不下我只回答一下你提出的问题吧.其他不懂的你可以再跟我联系.char c
本回答被提问者采纳
a& ;则是错的了.因为字符型是用单引号的. 字符串是是用双引号的.而字符串储存的时候,系统会自动在在字符串的后面增加一个结束号';是对的,但c=&a';c=&a&;因为你在上面定义了c为字符形式,而字符形式就占一个字节,所以c=&#39,而这个号是系统自动增加的,每个字符串都会有的,而这个结束符占了一个字节;c=&quot,而字符类型的C只有一个字节;a' c=&#39而只一个更不用说了; ,所以是错误的.c=&abcd&;abcd&\0'
字符串&abd&在内存中站四位的,在zbd后面系统回追加个'\0',而字符却不是'a'就是一位
char c[]=&abcd&; 才是正确的~字符串常量是char数组~printf(&%c/n,&c1),如果是打印字符串型,那个%c应该改成 %s上面a[4]=&abcd&,char a[5]=&abcde&
是错误的~
因为要存储'\0'这样空间要大1不然溢出~
第二个错是因为用了双引号,字符型是用单引号的. 字符串是是用双引号的. 而最后一个错是,abcd明显是一串字符串,所以不能用来说明,如果要说明,可以使用数组形式定义:a[4]=&abcd&
其他7条回答
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 c语言字符变量赋值 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信