char *str[]="Hello World!"; char *str; str = "Hello world"
理解:字符串指针变量自己是一个变量,用于存放字符串的首地址。而字符串自己是存放在以该首地址为首的一块连续的内存空间中并以 0 做为串的结束。数组
int main(void){ char *a= "bcd" ; printf("输出字符:%c \n", *a); /*输出字符,使用"%c"*/ printf("输出字符:%c \n", *(a+1) ); /*输出字符,使用"%c"*/ printf("输出字符串:%s \n", a); /*输出字符串,使用"%s";并且a以前不能有星号"*" */ system("pause"); }
运行结果:app
输出字符:b 输出字符:c 输出字符串:bcd
char str[]="Iamhappy";
理解:字符数组是由若干个数组元素组成的,它可用来存放整个字符串。(即用字符数组来存放字符串)。指针
char str[10]={'I','','a','m','','h','a','p','p','y'};
错误的赋值方式:code
char str[20]; str="Iamhappy";
在C语言,有两种方式表示和存放一个字符串内存
char str[]="I love u";
数组名就是字符串的首地址字符串
char *str="I love u";
指针变量就是字符串的首地址变量
两种表示方式的字符串输出都用:printf("%sn", str);
%s 表示输出一个字符串,给出字符指针变量名 str(对于第一种表示方法,字符数组名便是字符数组的首地址,与第二种中的指针意义是一致的),则系统先输出它所指向的一个字符数据,而后自动使 str 自动加 1,使之指向下一个字符...,如此,直到遇到字符串结束标识符 0 。
char *str[] = {"Hello", "C++", "World"}; //char (*str)[] = ... int i; for(i=0; i<3; i++) printf("%s\n", str[i]);
*(*(str+1)+2)
:表示数组的第二个元素的内容(char指针),指向的第三个字符(C++中的第二个+)