1. 字符指针变量
字符指针变量是存放地址的
char ch = 'w';
char* pc = &ch;
*pc = 'w';
表达式的两个属性:
【值属性】计算后的值是多少
【类型属性】类型是什么
注:hello是常量字符串,不能被修改,是连续存放的,可用printf("%sn", p);
打印字符串。
常量字符串指的是在程序中声明的一个不可更改的字符串变量
int main()
{
char str1[] = "hello bit";
char str2[] = "hello bit";
const char *str3= "hello 服务器托管网bit";
const char* str4 = "hello bit";
return 0;
}
str1
和str2
以字符串的形式对数组进行初始化
str3
和str4
是指针,指向的是字符串,指向的内容是"hello bit"
(常量字符串)常量字符串不能被修改
数组名是首元素的地址,
在str3和
str4中,
指向的是同一块地址,
相同内容保存一份
2.数组指针变量
指针数组是存放指针的数组
字符指针——指向字符的指针,存放的是字符的地址char ch='w';char *pc=&ch.
整形指针——指向整型的指针,存放的是整型的地址int n=120;int*p=&n
数组指针——指向数组的指针,存放的是数组的地址int arr[10];int(*p)[10]=&arr;
数组指针变量——存放数组地址,指向数组的指针变量int(*p)[10]=&arr;
注:p先和*结合,说明p是⼀个指针变量,然后指着指向的是⼀个⼤⼩为10个整型的数组。所以p是⼀个指针,指向⼀个数组,叫数组指针。[]
的优先级要高于*
号的,所以必须加上()
来保证p先和*
结合。
int *p1[10];//存放指针的数组
int (*p2)[10];//存放数组的指针
3.二维数组
法一:
void zhizhen_(int arr[3][5], int a, int b)
{
int i = 0;
for (i = 0; i
法二:(用数组指针)
void zhizhen_(int(*arr)[5], int a, int b)
{
int i = 0;
for (i = 0; i
二维数组的每一行是一个一维数组,这个一维数组可以看成是二维数组的一个元素,所以二维数组可以认为是一维数组的数组;二维数组的数组名表示数组首元素的地址,就是第一行的地址,也就是一维数组的地址
第⼀⾏的⼀维数组的类型就是
int [5]
,所以第⼀⾏的地址的类型就是数组指针类型int(*)[5]
那就意味着⼆维数组传参本质上是传递了地址,传递的是第一行这个⼀维数组的地址
⼆维数组传参,形参的部分可以写成数组,也可以写成指针形式。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, h服务器托管网ttp://www.fwqtg.net