char型指针的初始化问题 方法一:char *str = “abcd“ 区别在于你这里赋给str的是一个常量字符串,存储在静态全局区,因此str也成了一个指向常量的指针,不能通过指针对常量内容做任何更改,例如*(ch+2)='y',将会出错;。 方法二: char a[4]={a,b,c,d}; char*str = a; 也是一种初始化直接赋值,但是...
char指针型变量的初始化 这是关于char指针的一个小问题。 使用char *str 声明一个char类型的指针变量str; 在使用 str 之前必须给 str 赋值。 两种赋值方法: 第一种不可更改内容: char *str = “abcde”; 或者 char *str ; str = “abcde”; 这种情况下str中的字符只能读,而不能写。 第二种可以更改内...
直接初始化就是在定义变量的同时给其赋值,你定义了一个指向char的指针型变量,后面只要给它赋上相对应类型的值就可以了。区别在于你这里赋给str的是一个常量字符串,存储在静态全局区,因此str也成了一个指向常量的指针。如果像如下定义:char a[4]={a,b,c,d};char*str = a;也是一种初始化直...
char a[8];这样定义了一个数组后,数组名a就是个地址常量,也就是指针常量,只能指向该数组在内存地址空间中的首地址。不可以指向别的地址。所以如果a = "hello";就是把字符串常量"hello"的首地址赋给地址常量a,这是不允许的。而如果写成char a[8] = "hello";这就是在定义数组a的时候就对...
char a[8];这样定义了一个数组后,数组名a就是个地址常量,也就是指针常量,只能指向该数组在内存地址空间中的首地址。不可以指向别的地址。所以如果a = "hello";就是把字符串常量"hello"的首地址赋给地址常量a,这是不允许的。而如果写成char a[8]= "hello";这就是在定义数组a的时候就对其...