首页 > 编程知识 正文

php给变量赋值,php变量的引用赋值

时间:2023-05-04 16:17:53 阅读:21220 作者:3643

字符串主要用于编程,字符串在存储上类似于字符数组,因此可以提取每个位的各个元素。 例如,如果s=“abcdefghij”,则s[1]=“a”,s[9]='j ',字符串的零位长度类似于s[0]=10()。 上述功能为anni,这可以为我们提供很多便利。 例如,在高精度运算时,各位可以转换为数字并放入数组中。

但是,对字符串赋值有一定的要求,例如c语言的运算符不能操作字符串。 因为在c语言中将字符串作为数组来处理,所以字符串的限制方法和数组相同,特别是不能用c语言的运算符进行复制和比较操作。

字符串赋值方式

在c语言中,字符串的表示形式有两种。 一个是char str[20]='I love china '; 另一种形式是字符指针,如char *str='I love china '。 可以将字符串分配给字符指针变量,也可以将字符串保存为字符数组。 因为c语言不直接对字符串提供语法糖的支持。 另外,c标准库的很多方法处理字符串都是以空字符结尾为前提的,这需要记住。 char *p,a='5';

p=a; //显然是正确的

p='abcd '; //但是为什么也可以这样赋值呢?

在上述步骤中,双引号做了三件事。 申请了空间()在常数区域中),保存了字符串。 字符串末尾加了’/0’; 返回地址。 在这里,我把返回的地址分配给了p。

但是,char *p=“hello”式为什么可以,不能将p置换为数组后再赋值。 这是因为,当字符串常量" hello "出现在表达式中时," hello "表达式中使用的值是存储这些字符的地址,而不是这些字符本身。

因此,可以将字符串指定给指向字符的指针p,而不是将字符串指定给字符数组。

char a[10]=“hello”这样也可以。 在这种情况下,c语言初始化支持。 写char a[10],如果a=“hello”的话就错了。 在同一个a数组中,char a[10]=“hello”这是数组的初始化,与a [0]=‘h’a [1]=‘e’…的道理相同。

但是,用char a [10]代替,a="hello "就不行了。 代入" hello "的值是地址。 另一方面,a也有地址,但这与指针不同。 指针的值是地址,数组的值也是地址,但它是常量。 不能代入常数。 [3]

测试一下吧。 #include int main () { char *p='hello ); printf('%s ',p );

char a[10]; a='hello ';

返回0; } errorc 2440: '=' : cannotconvertfrom ' char [6] ' to ' char [ 10 ] ' thereisnocontextinwhichthisconversionisposposibior

收到此类错误消息后,请尝试将char a[10]更改为chara [6] errorc 2106:‘=’: leftoperandmustbel-value

运算符的左侧必须是“左侧值”。 “左值”是指程序中可以占用和更改内存空间的量,如各种变量。

使用指针时,指针可以自增加,但数组名称不能由自增加编译器为数组分配空间。 数组a的地址表示常数。 常数不能自我增加。

此外,当指针递增时,编译器会自动识别类型。 例如,如果指针指向int类型,并且想要获取下一个地址,则指针可以保持原样,p。 请不要多加p 4。

必须注意的是,在使用void指针时,不能使用指针运算。 p这样做是不合法的,因为void类型编译器无法识别类型的长度,也就是指针指向的对象的体积。 也就是说,不能进行数学运算,也不能进行取*值的操作。 如果想使用的话,必须转换为其他类型。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。