字符串指针则是指向字符串的指针变量,可以用于对字符串进行操作和处理。本文将以C语言字符串指针初始化为标题为主题,探讨字符串指针的初始化和使用方法。 ## 1. 概述 在C语言中,字符串指针的初始化可以通过多种方式实现。常见的方式有直接赋值、使用strcpy函数和通过字符数组的地址进行初始化等。下面将详细介绍这些...
对指向字符变量的指针变量应赋予该字符变量的地址。 当重新赋值时 string = "I love mooc"; //str保存的是字符串常量I love mooc的首地址 比如: printf("%c\n",&(string+4)); //输出了v 注意: 1)使用字符数组来保存的字符串是保存在栈里的,保存栈里面的东西是可读可写,所有我们可以改变里面的字符当...
1.字符串指针 char *string = "hello mooc"; //hello mooc这个字符串存储在常量区,string其实只保存了字符串常量的首地址。 说明:字符串指针变量的定义说明与指向字符变量的指针变量说明是相同的。只能按对指针变量的赋值不同来区别。对指向字符变量的指针变量应赋予该字符变量的地址。 当重新赋值时 string = "I...
指针初始化时定义了一个指针指向常量地址,而数组初始化时是该数组申请了地址空间用于存储常量字符串的内容。因此,前者不可变,而后者是可变的。 有用 回复 iSayme 3.5k278 发布于 2015-10-09 数组的字符串内存属于栈, 所以是可读可写;指针的字符串内存属于代码块,只可读, 这个地址程序运行后一直存在且不变. 有...
1charb[] ="hello";2则“hello”存于栈中,因为定义的是一个数组。34char*b ="hello";5则"hello"存于静态存储区中,因为定义了一个字符串常量,并把它的地址赋给了b。6如果此时在指针仍然指向静态存储区的情况下通过指针修改其指向的地方,则程序能通过编译,但运行时会报“segmention fault”...
cout<<"***字符串指针-字符串***\n\n";//不适用于C++环境,需要修改项目-属性-C/C++-语言-符合模式-修改为“否”,才不会报错char*a03="hello"; printf("使用字符串指针声明并初始化一个字符串 a03 = %s\n", a03);char*a04; a04="hello"; printf...
而且也没有数组存储它。编译器在编译的时候会把这个字符串的第一个字符'I'的地址给指针变量pChar。
所有的字符串常量存储在数据段,相当于一个隐藏的全局变量。普通的全局变量你自己是可以取地址的,但这种...
aa[0] = 'd'; //这个时候是错误的,因为aa是一个指针,指向一个字面常量“abc”,这个字面常量是保存在程序的全局静态数据区,不可更改,默认就是const的,所以char *aa = "abc";是错误的。3 const char aa[] = "abc";aa[0] = 'd'; //这里也会报错,因为是const的aa指向的值不可...
char result[]="";这不会分配内存,你必须用new或者malloc真正分配内存