网站网站营销特点,wordpress 增加模板,app推广平台网站,常见的营销方式有哪些文章目录 6.单⽬操作符7.逗号表达式8.下标访问[]、函数调⽤()8.1 [ ] 下标引⽤操作符8.2 函数调⽤操作符 9.结构成员访问操作符9.1 结构体9.1.1 结构的声明9.1.2 结构体变量的定义和初始化 9.2 结构成员访问操作符9.2.1 结构体成员的直接访问9.2.2 结构体成员的间接访问 6.单⽬… 文章目录 6.单⽬操作符7.逗号表达式8.下标访问[]、函数调⽤()8.1 [ ] 下标引⽤操作符8.2 函数调⽤操作符 9.结构成员访问操作符9.1 结构体9.1.1 结构的声明9.1.2 结构体变量的定义和初始化 9.2 结构成员访问操作符9.2.1 结构体成员的直接访问9.2.2 结构体成员的间接访问 6.单⽬操作符
单目操作符有这些
、、--、、*、、-、~ 、sizeof、(类型)
单目操作符的特点是只有一个操作数在单目操作符中只有 和 * 没有介绍这2个操作符我放在后面指针那一节介绍。 需要注意 作为双目操作符的时候是按位与作为单目操作符的时候是取地址。 a b —按位与 a —取地址 7.逗号表达式
exp1,exp2,exp3,...expN逗号表达式就是用逗号隔开的多个表达式。
逗号表达式从左向右依次执行。整个表达式的结果是最后一个表达式的结果。
例1
int main() {int a 1;int b 2;int c (a b, a b 10, a, b a 1);printf(%d\n, c);return 0;
}打印
13先算ab这步没什么影响。因为没有赋值只是单纯的比较了一下。这个表达式的结果是0。然后算a b 10a21012。这个表达式的结果是12。然后算a这步没什么影响因为没有赋值。这个表达式的结果是12。然后算b a 1b12113。这个表达式的结果是13。上面一步得到的13是逗号表达式的值所以c13。打印c的值输出13。
逗号表达式一定要从左向右算因为前面的运算可能会影响后面。
我们接着来看下面一段代码
int main() {int a 0;a get_val();count_val(a);while (a 0) {a get_val();count_val(a);}return 0;
}这段代码我们可以看到34行和67行一样看起来比较麻烦。
我们可以优化一下:
int main() {int a 0;while (a get_val(),count_val(a), a 0) {}return 0;
}实际上两个代码的功能一样但是看上去逻辑清晰了不少。 8.下标访问[]、函数调⽤()
8.1 [ ] 下标引⽤操作符
int main() {int arr[10] { 1,2,3,4,5 };int m arr[4];//数组中下标是4的元素//[ ]下标引用操作符操作数是arr和4这个4我们叫做数组下标或索引//35是操作符3和5是操作数printf(%d\n, m);return 0;
}8.2 函数调⽤操作符
int Add(int x, int y) {return x y;
}int main() {printf(hehe\n);//这里的()就是函数调用操作符操作数是printf和hehe\nprintf(%d\n,100);//操作数是printf和%d\n和100int ret Add(3, 5);//操作数是Add,3,5//函数调用操作符最少有几个操作数//1个在一个函数不去传参的时候就只有1个操作数也就是函数名return 0;
}9.结构成员访问操作符
9.1 结构体
结构是一些值的集合这些值称为成员变量。结构的每个成员可以是不同类型的变量如标量、数组、指针甚至是其他结构体。
9.1.1 结构的声明
struct tag
{member-list;//成员列表这个里面至少要有1个成员
}variable-list;//变量列表 9.1.2 结构体变量的定义和初始化
创建结构体变量
//学生类型
struct Student {//成员变量char name[20];int age;float score;
};struct Student s3;//全局变量int main() {int a;struct Student s1;//局部变量//这个s1就是用Student这个学生类型创建的对象。struct Student s2;return 0;
}//学生类型
struct Student {//成员变量char name[20];int age;float score;
}s4, s5, s6;//全局变量
//这里面的s4, s5 ,s6和上面的s3一个意思就是写法不同初始化结构体变量
//学生类型
struct Student {//成员变量char name[20];int age;float score;
}s4 { 小李,22,22.2 }, s5, s6;//全局变量struct Student s3 { 王五,25,88.8 };//全局变量int main() {int a;struct Student s1 { 翠花,20,98.0 };//局部变量struct Student s2 { 旺财,18,69.8 };return 0;
}结构体变量的嵌套定义和初始化
struct Point {int x;int y;
};struct S {char ch;struct Point p;int arr[10];double d;
};int main() {int a;struct Point p { 10,20 };struct S s { a,{4,5},{1,2,3,4,5,6,7},3.14 };return 0;
}9.2 结构成员访问操作符
9.2.1 结构体成员的直接访问
结构体变量.结构体成员名
-这个是依赖指针的会在后面讲指针的章节详细讲到。
struct Point {int x;int y;
};struct S {char ch;struct Point p;int arr[10];double d;
};int main() {int a;struct Point p { 10,20 };struct S s { a,{4,5},{1,2,3,4,5,6,7},3.14 };printf(%c\n, s.ch);//访问了结构体变量s里面的ch元素printf(坐标是%d %d\n, s.p.x, s.p.y);printf(%d\n, s.arr[0]);printf(%lf\n, s.d);return 0;
}打印
a
坐标是4 5
1
3.1400009.2.2 结构体成员的间接访问
有时候我们得到的不是一个结构体变量而是得到了一个指向结构体的指针。
结构体指针-成员名
#include stdio.h
struct Point
{int x;int y;
};int main()
{struct Point p {3, 4};struct Point *ptr p;ptr-x 10;ptr-y 20;printf(x %d y %d\n, ptr-x, ptr-y);return 0;
}现在看不懂没事后面讲指针的时候会讲到。