一、概念不同 char *str 声明的是一个指针,这个指针可以指向任何字符串常量。char str[] 声明的是一个字符数组,数组的内容可以是任何内容,严格意义上说,末尾加上'\0' 之后才能算是字符串,二、变量不同 char *str里的str是指针变量,str的值未初始化(局部变量的话。全局则自动初始化为NULL)...
而char str[] = "C++"语句,定义了一个数组,编译器为其再栈上分配了内存空间,因而可以进行修改操作。 总结如下: char str[]定义了数组,str可认为一个常指针不可改变,但str指向的内容可以发生改变。 char *p定义了一个可变指针,p可以指向其他对象,但是对于char *p = "C++"这样的情况,p指向的是常量,故内容不...
char str[]="hello"; 解析: str是数组名,它是一个指针,指向变量”hello”字符串的首地址 ①:str我们把它理解是数组名,是一个指针常量(注意不是变量,只是数组名的命名方法和变量一样!!) ②:字符串”hello”,保存在栈上 恩,我自增一下 str++; 很明显,str++;是错误的语法,因为不是变量(这里需要注意:cha...
【转】char *str 和 char str[]的区别 1char* get_str(void)2{3charstr[] ="abcd";4returnstr;5} char str[] = "abcd";定义了一个局部字符数组,返回它的地址肯定是一个已经释放了的空间的地址。 此函数返回的是内部一个局部字符数组str的地址,且函数调用完毕后 此数组被销毁,所以返回的指针也就指向...
char *str:声明的是一个字符型指针,这个指针可指向任何字符串常量或某个字符变量。char str[] :声明的是一个字符型数组,数组的内容可以是任何内容,末尾加上’\0’ 后就是是字符串。
char str[]="Hello!"; 或者char str[]={"Hello!"};这两个是一样的。举例2 char str[]; str[]="Hello!"; 这里先定义,在赋值,这局赋值语句语法是错误的。举例3 例2不行,那如何赋值。如下 char str[]; str[]={'H','e','l','l','o','!'}是一个一个赋值的,也可以...
简介:char *str,char &str,char *& str和char str的区别 1.char *str是一个指向字符或字符串的指针,总是指向一个字符的起始地址,例如 char *str = "Hello";cout << *str << endl; // 输出:Hcout << str << endl; // 输出:Hellostr ="World"; //指针变量本身地址没有改变,只是改变了指针指向...
【C语言笔记】char *str与char str[]的区别 C语言中没有特定的字符串类型,常用以下两种方式定义字符串:一种是字符数组,另一种是指向字符串的指针。如下: 代码语言:javascript 复制 (1)char str[]="happy";(2)char*str="happy"; 这种方式有什么不同呢?
首先看例子: char str[]:这里面的str表示一个char类型的数组指针,该指针所指向的数组内容是保存在栈上面的,是可以修改的。 而char*str是一个字符串指针,...
char str[100]的意思是,定义一个字符数组str,大小为100;str[100],数组下标是0-99,共可以存储100个字符。例如: