c – 什么是*(uint32_t *)
发布时间:2020-12-16 10:41:40 所属栏目:百科 来源:网络整理
导读:我很难理解*(uint32_t *). 让我说我有 uint32_t* ptr;uint32_t num*(uint32_t*)(ptr + num); //what does this do? does it 解决方法 uint32_t是一个保证32位的数字类型,该值是无符号的, 意味着值的范围从0到232 – 1. 这个 uint32_t* ptr; 声明类型为uint32
我很难理解*(uint32_t *).
让我说我有 uint32_t* ptr; uint32_t num *(uint32_t*)(ptr + num); //what does this do? does it 解决方法
uint32_t是一个保证32位的数字类型,该值是无符号的,
意味着值的范围从0到232 – 1. 这个 uint32_t* ptr; 声明类型为uint32_t的指针,但指针未初始化,即 这个 uint32_t num; 只是uint32_t类型的变量. 这个 *(uint32_t*)(ptr + num); ptr num返回一个新指针.它被称为指针算术,它是 (uint32_t *)x是一个强制转换,这告诉编译器它应该处理 开头的*是用于访问的解除引用运算符 ptr[num]; 现在因为没有初始化这些变量,结果将是垃圾. uint32_t arr[] = { 1,3,5,7,9 }; uint32_t *ptr = arr; uint32_t num = 2; printf("%un",*(ptr + num)); 这将打印5,因为ptr [2]是5. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |