1 /***************************************************************************** 2 * @brief : 字符串定义方法总结 指针 字符数组 3 * @author : BoltLi 4 * @date : 2019/2/20 10:20 5 * @version : ver 1.0 6 * @inparam : 7 * @outparam : 8 *****************************************************************************/ 9 #include<stdio.h> 10 int main() 11 { 12 //char *s; s = {"abc"}; //错误方法,错误原因:不可以直接设置将字符数组赋值给指针,但可以采取下面的将字符串赋值给指针,或者定义指针时直接赋值字符串 13 14 //char *s; s = "abc"; //1)定义后再将字符串赋值给指针(对比上面少了一对大括号‘{}’) 15 16 //char *s = {"abc"}; //2)定义指针时直接赋值字符串(‘{}’大括号有无均可) 17 18 //char s[] = {"abc"}; //3)字符数组方法 19 //char s[4] = "abc"; //3)包含结束标识符一共需要4个,所以这里定义为s[4],一般定义比字符个数多较多就可以 20 21 //4)要使s指向一个字符串,还可以采取下面的方法: 22 //char *s; 23 //char str[] = "abc"; s = str; 24 //先将字符串存于字符数组中,然后将数组名赋给字符指针(数组名代表数组首地址,定义数组是为其分配确定的地址) 25 26 printf("%c\n",s[2]); //只输出c 27 printf("%s", s); // 整体输出字符串s,显示为abc 28 while(1); 29 return 0; 30 }
对于VS2010,上述操作没问题,而对于VS2017,不支持上述字符串的操作,会报错如下:
使用VS2017,结果如下:
使用VS2010结果如下:
不忘初心,不轻言放弃,认真选择,然后勇往直前!