指针运算
运算符
字节运算符: sizeof()
关系运算符:
条件运算符: "exp1 ? exp2 :exp3"(三目运算符)
逻辑运算符:
逗号运算符:
指针运算符:
下标运算符: []
算术运算符:
赋值运算符: =
符合赋值运算符: += -= *= /= %= &= |= ^= ++ --
int a[10] = {0};
int *p = &a[0];
p++;
*p = 100;
指针进行运算时,要确保指针所指向的内存区域一致
比如 指向不同数组的两个指针,进行运算得到的结果没有意义.
数组指针:
将数组名作为参数传递给函数时,实际上是传递的数组的首地址.
函数的形参可以写成以下形式:
void f(int a[10])
或void f(int a[])
或void f(int *a)
定义的格式: int (*变量名)[数组列数]
int a[10], *p = a;
int b[10][10], (*p2)[10] = a;
如果要传二级指针:
void f(int (*p)[10]);
void f(int a[10][10]);
作业1:定义一个8*8矩阵,随机赋值.
定义一个指向该数组的指针(*p)[8],
定义一个函数add,用p做参数调用函数,
函数返回矩阵中最大的元素的值.
作业2:定义一个字符数组st[20],
用26个大小写字母随机给元素赋值
定义指向该字符数组的指针
定义一个函数calc_word
用指针作为参数调用函数后,得到大写字母与小写字母的数量
作业3:定义两个3*4的矩阵,随机赋值,范围(1--100)
定义两个分别指向两个矩阵的指针
将两个指针作为参数传递给函数exchange完成两个数组中元素的对调.
运算符
字节运算符: sizeof()
关系运算符:
条件运算符: "exp1 ? exp2 :exp3"(三目运算符)
逻辑运算符:
逗号运算符:
指针运算符:
下标运算符: []
算术运算符:
赋值运算符: =
符合赋值运算符: += -= *= /= %= &= |= ^= ++ --
int a[10] = {0};
int *p = &a[0];
p++;
*p = 100;
指针进行运算时,要确保指针所指向的内存区域一致
比如 指向不同数组的两个指针,进行运算得到的结果没有意义.
数组指针:
将数组名作为参数传递给函数时,实际上是传递的数组的首地址.
函数的形参可以写成以下形式:
void f(int a[10])
或void f(int a[])
或void f(int *a)
定义的格式: int (*变量名)[数组列数]
int a[10], *p = a;
int b[10][10], (*p2)[10] = a;
如果要传二级指针:
void f(int (*p)[10]);
void f(int a[10][10]);
作业1:定义一个8*8矩阵,随机赋值.
定义一个指向该数组的指针(*p)[8],
定义一个函数add,用p做参数调用函数,
函数返回矩阵中最大的元素的值.
作业2:定义一个字符数组st[20],
用26个大小写字母随机给元素赋值
定义指向该字符数组的指针
定义一个函数calc_word
用指针作为参数调用函数后,得到大写字母与小写字母的数量
作业3:定义两个3*4的矩阵,随机赋值,范围(1--100)
定义两个分别指向两个矩阵的指针
将两个指针作为参数传递给函数exchange完成两个数组中元素的对调.