char str[100]的意思是,定义一个字符数组str,大小为100;str[100],数组下标是0-99,共可以存储100个字符。例如:
char str[]="hello"; 解析: str是数组名,它是一个指针,指向变量”hello”字符串的首地址 ①:str我们把它理解是数组名,是一个指针常量(注意不是变量,只是数组名的命名方法和变量一样!!) ②:字符串”hello”,保存在栈上 恩,我自增一下 str++; 很明显,str++;是错误的语法,因为不是变量(这里需要注意:cha...
只是改变了指针指向的常量字符串地址cout<< str <<endl; //输出:Worldvoid ModifyPointer(char *str) {str = "World";// 参数str是指向字符串的起始位置,而不是字符串本身,所以这样写是错误的,会返回原值}
char str[] = "abcd"; //等号两端是相同的数据类型,右值成为左值 char* str = "abcd"; //等号两端是不同的数据类型,右端自动转型成char*,该char*得到了str的名字,而"abcd"这个char数组仍然没有名字。 char* str是存储在全局静态存储区,所以,虽然是局部变量但函数返回后依然可以拿到正确的值! char str[]...
char *str:声明的是一个字符型指针,这个指针可指向任何字符串常量或某个字符变量。char str[] :声明的是一个字符型数组,数组的内容可以是任何内容,末尾加上’\0’ 后就是是字符串。
char str; //表示声明一个char类型的名字为str的变量。char 表示的是变量的类型为字符型。str 表示的是字符类型变量的名字。
char str[] = {"abcd"};定义了一个局部字符数组,尽管是数组,但它是一个局部变量,返回它的地址肯定是一个已经释放了的空间的地址。 此函数返回的是内部一个局部字符数组str的地址,且函数调用完毕后 此数组被销毁,所以你返回的指针也就指向一块被销毁的内存,这种写法是错误的。
一、概念不同 char *str 声明的是一个指针,这个指针可以指向任何字符串常量。char str[] 声明的是一个字符数组,数组的内容可以是任何内容,严格意义上说,末尾加上'\0' 之后才能算是字符串,二、变量不同 char *str里的str是指针变量,str的值未初始化(局部变量的话。全局则自动初始化为NULL)...
char 是字符,比如char ccc,此时cccc表示一个字符,我们可以用%c的格式化打印出来。另外,给字符赋值一般这样:ccc = 'd';这句的意思是把d这个字符赋值给ccc。char 还可以声明字符数组,即我们所说的字符串。比如char str_1[100];这表示在栈区申请了可自动回收的100字节的空间,用来存放100个字符。
严格说来,声明char *ptr只能保证您指向字符类型。字符串形成已编译应用程序的代码段的一部分并不少见,...