11.30

指针成员

.的优先级高于[]

  1. #include<stdio.h>
  2. struct stu{
  3. int *p;
  4. };
  5. int main(){
  6. int a[5]={1,2,3,4,5};
  7. struct str p=a;
  8. struct str q=(int *)malloc(8);
  9. st.q[0]=15;
  10. st.q[1]=12;
  11. printf("%d,%d\n",st.p[0],st.q[0]);
  12. return 0;
  13. }

函数成员

.与()优先级相同

  1. struct stu{
  2. void name(void){
  3. printf("i am xxx");
  4. }
  5. };

C语言结构体中不能放函数成员,C++可以

但可以这样写:

  1. void name(void){
  2. printf("i am xxx");
  3. }
  4. struct stu{
  5. void(*a)(void); //利用指针
  6. };
  7. it main(){
  8. struct stu b={name}; //也可为&name,均为其地址
  9. (b.a)(hh);
  10. }