s1=s1+1与s1+=1的区别】的更多相关文章

话不多说,看代码: #include <stdio.h> #include <stdlib.h> int main(void) { ] = "a-z0-9hahah-a-z-s-d"; ]; expand(s1, s2); printf("Now the s2 is : %s", s2); ; } void expand(char * s1, char * s2) { , j = , c; while((c = s1[i++]) != '\0…
void squeeze(char a[],char b[]) { //要实现把s2的任意字符如果出现的话就在s1中删除 //1.首先判断s1[j]==s2[i]&&s1[j]=='\0' int j,i; for( j=0;b[j]!='\0';j++)// { for(i=0;a[i]!='\0';i++) { if(a[i]==b[j]) for(int m=i;(a[m]=a[1+m])!='\0';m++);//消除元素 } } } //其实里面那些{}可以删掉 不过删了的话就不…
FIELD(S,S1,S2,...)  与 FIND_IN_SET(S,S1) 函数  ------> 这2个函数都是返回指定字符串在源串中的出现的位置(皆是第一次出现的位置),但2个函数的参数不一样,前者是以列表形式的参数,后者是整体为一个整串的参数.(上边S皆为指定串,前者S1和S2为串列表,后者S1为一个整串) FIELD(S,S1,S2,...) : 返回指定字符串位置的函数FIELD(S,S1,S2,...) FIELD(S,S1,S2,...)返回字符串s在列表s1,s2,.....…
对于short s1 = 1; s1 = s1 + 1; 由于s1+1运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s1时,编译器将报告需要强制转换类型的错误. 对于short s1 = 1; s1 += 1;由于 += 是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译.…
对于char *s1 和 char s2[] 认识有误区(认为无区别),导致有时出现“难以理解”的错误. char *s1 = "hello"; char s2[] = "hello"; [区别所在] char *s1 的s1,而指针是指向一块内存区域,它指向的内存区域的大小可以随时改变,而且当指针指向常量字符串时,它的内容是不可以被修改的,否则在运行时会报错. char s2[]的s2 是数组对应着一块内存区域,其地址和容量在生命期里不会改变,只有数组的内容可以改…
short s1=1;s1 = s1 +1会报错吗?    package common; public class ShortTypeTest { /* * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub short s1 = 1; s1 = (short) (s1 + 1);//简单类型 short s2=1; s2 +=1;//复合类型,复合赋值操作符+=,…
package common; public class ShortTypeTest { /* * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub short s1 = 1; s1 = (short) (s1 + 1);//简单类型 short s2=1; s2 +=1;//复合类型,复合赋值操作符+=, System.out.println(s1+";"…
这个问题以前碰到过,也研究过,发表一下:    如果你认为表达式(x += i)只是表达式(x = x + i)的简写方式,这并不准确.这两个表达式都被称为赋值表达式.第二个表达式使用的是简单赋值操作符(=),而第一个表达式使用的是复合赋值操作符.Java语言规范中讲到,复合赋值(E1 op=E2)等价于简单赋值(E1=(T)((E1) op (E2))),其中T是E1的类型,除非E1只被计算一次.    换句话说,复合赋值表达式自动地将所执行计算的结果转型为其左侧变量的类型.如果结果的类型与该…
如果你认为表达式(x += i)只是表达式(x = x + i)的简写方式,这并不准确.这两个表达式都被称为赋值表达式.第二个表达式使用的是简单赋值操作符(=),而第一个表达式使用的是复合赋值操作符.Java语言规范中讲到,复合赋值(E1 op=E2)等价于简单赋值(E1=(T)((E1) op (E2))),其中T是E1的类型,除非E1只被计算一次.   换句话说,复合赋值表达式自动地将所执行计算的结果转型为其左侧变量的类型.如果结果的类型与该变量的类型相同,那么这个转型不会造成任何影响.然而…
Java规范有这样的规则 [ 1.高位转低位需要强制转换 2.低位转高位自动转. ] short s1 = 1; s1 = s1 + 1;有什么错? 答: i 是int 型   s1 short型 通过 + 运算后s1 自动转为int 型   所以错! short s1 = 1; s1 += 1;有什么错? 答: 如果你认为表达式(x += i)只是表达式(x = x + i)的简写方式,这并不准确. 这两个表达式都被称为赋值表达式.(x = x + i)表达式使用的是简单赋值操作符(=),而(…