char型指针的初始化问题 方法一:char *str = “abcd“ 区别在于你这里赋给str的是一个常量字符串,存储在静态全局区,因此str也成了一个指向常量的指针,不能通过指针对常量内容做任何更改,例如*(ch+2)='y',将会出错;。 方法二: char a[4]={a,b,c,d}; char*str = a; 也是一种初始化直接赋值,但是
char a[8];这样定义了一个数组后,数组名a就是个地址常量,也就是指针常量,只能指向该数组在内存地址空间中的首地址。不可以指向别的地址。所以如果a = "hello";就是把字符串常量"hello"的首地址赋给地址常量a,这是不允许的。而如果写成char a[8]= "hello";这就是在定义数组a的时候就对其...
读到main函数的定义时,就把main(int argc,char *argv[],char *envp[])中包含的argv命令行字符串数组(这是按照字符串以空格划分的,"你好啊"存在一个argv[i]中),envp环境变量字符串数组(程序运行需要的环境,例如path告诉程序可以去这里找这个程序,还有父进程的继承.);把这些内容放到栈底,一个新程序开始时典型...
1、首先确定是字符指针数组还是字符数组指针,前者是一个数组,数组每个元素都是一个字符指针,后者是一个指向字符数组的指针。 2、指针要么是在初始化的时候进行赋值,如:char *p = hello world!;要么在之后将指针指向一个已经初始化的内存空间,因为只定义而未初始化的指针不会指向任何内存空间,是不能对指针指向的地...