字符数组与指针的用法
字符数组及其两种初始化
字符数组初始化:char a[5] = {'a','b','c','d','e'};
char a[5] = {97,98,99,100,101};//数字表示ASCII码
char a[] = {97,98,99,100,101};
1.在C语言中引用一个单个字符时,应该用单引号‘’括起来。
2.定义数组同时初始化,可以省略数组定义时[]中的数组长度。
指针定义与使用时的不同意思:
int *p;
int a;
p = &a;
*p = 11;
上面一段代码很好理解,就是通过指针改变整型a的值,但需要区分指针定义时与操作时的不同。
定义时:指针表示整型变量p,*号只是表示告诉编译器这是个指针,但其本质还是个指针变量(是变量不是指针)为什么要这样说,通过指针的初始化我们就可以理解。
操作时:像上面一段代码表示的那样*p代表指针变量指向的那个变量,也就是变量a。(可以理解为本质就是个指针了,而不是变量)。所以我们在对指针初始化时,如下;
int a = 23;
int *p = &a; //因为*p代表指针变量,是个变量,
//a也是个变量而p里面是存的地址故用&a
指针变量的类型是指针类型如上,*p是指针类型,并不是int型。但指针所指向的值必须与指针前类型要一致。
float a = 23;
int *p = &a; //是错的。