而数组名无论右值和还是左值,都代表是地址,是常量,因此它不可以做左值,因为常量不可被修改!所以不少同学试图再定义数组之后再试图对数组赋字符串都是错误的! 4.字符串常量做右值 字符串常量想必大家都很清楚,是用双引号括起来的字符串,既然也是常量,也理所当然不可以做左值,但做右值呢? 答案是,会表示该字符串...
1、puts()函数原形:int puts(const char *s); 返回值:用来向标准输出设备(屏幕)输出字符串并换行,把字符串输出到标准输出设备,将'\0'转换为回车换行,只能输出字符串, 不能输出数值或进行格式变换,可以将字符串直接写入puts()函数中:puts("Hello, world!");...
这里3和"howdy"都是右值,所以不能放在赋值操作符左边,一切常数、字符和字符串都是右值。
而数组名无论右值和还是左值,都代表是地址,是常量,因此它不可以做左值,因为常量不可被修改!所以不少同学试图再定义数组之后再试图对数组赋字符串都是错误的! 4.字符串常量做右值 字符串常量想必大家都很清楚,是用双引号括起来的字符串,既然也是常量,也理所当然不可以做左值,但做右值呢? 答案是,会表示该字符串...
右值 ,则指的是没有名字的值,它们只出现表达式的计算过程中,也就是等号的右边。例如:getName()返回一个在函数中构造的字符串。你可以把它的值赋给一个变量,但是它是一个临时对象,我们并不知道它的值放在哪里。所以,getName()是一个右值。说清楚了什么是左值和右值,那么什么是右值引用呢?
深入一点说。首先,右值的英文叫R-value,其中的R指的是Read,表示可读。一切常数、字符和字符串都是右值。 左值的英文叫L-value,其中的L指的是Location,表示可寻址。 我们知道,在写程序定义一个变量时,计算机会在内存申请一块区域用于存放这个变量的值。
//變量c是一個左值,因為CPU可以通過C的字符字面量的內存//地址找到對應該內存位置符存儲A這個字符字面量的值charc='A'//同理,5這個字面量是右值,n是左指longn=5//指針s是一個左指,但"abcd"這個字符串表達式是右值嗎?char*s="abcd" “abcd”這個字符串表達式,他是一個字符串字面量,即在靜態的字面...
的第一个字符的地址,即'H'的地址。注意:字符串相当于是一个数组,在内存中以数组的形式储存,只不过字符串是一个数组常量,内容不可改变,且只能是右值.如果看成指针的话,他即是常量指针,也是指针常量.str+1 也是一个指针,它指向数组的第1 号单元,它的类型是char**,它指向的类型是char*。*(str+1)也是一个...
左值只能是变量,右值可以是常量也可以是有值的变量