C语言的一些符号含义、 函数含义

union:共用体/联合体

union 共用体名{
成员列表
};

类似结构体,是一群变量的集合,和集合不同的是:

  1. 共用体分配空间时,是依据内部变量中最大变量的大小分配的。
    如下,double最大,需要8byte,所以分配8字节空间
union data{
    int n;
    char ch;
    double f;
};
  1. 实际上,共用体只分配空间,不管空间内的任何操作
    如下:根据共用体内部变量分配好空间大小,甚至可以写入未定义的变量类型
union var1{
        int a;
        double b;
};

int main()
{
        union var1 uu;
        uu.a=1;
        char* p1;
        p1  = &uu;
        p1[0] = 'a';
        p1[1] = 'b';
        p1[2] = '\0';
        printf("%s", &uu);
        return 0;
}

attribute :设置特殊属性

attribute可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)

union + attribute ((transparent_union)): 透明联合

这里其实也可以是 attribute ((transparent_union)),说是为了防止重名

透明联合相关介绍:https://gcc.gnu.org/onlinedocs/gcc-4.0.0/gcc/Type-Attributes.html#Type-Attributes

##的作用:连接符

字符数组,字符指针

  • 数组的变量名存放的值是数组第一个值的内存地址,所以数组名就是一个指针
  • 字符数组作用就是存放字符串的
  • 字符指针char*指向一串以00结尾的字符串
  • 所以字符指针就是字符数组,即char * == char []
//下面这样的赋值是可行的
char a[2] = "a";
char *b = a;
printf("first value is :%s", b);

char **argv == char *argv[]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值