你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
查看全部评分
*a++意思是指针地址+1
stm1024 发表于 2018-8-27 08:20 这种说法没错但是不太准确,严格意义上来说,是按其类型递增相应的位数。例如原来的地址是0x0004,如果你 ...
sincomaster 发表于 2018-8-27 08:50 stm1024大神,我怎么觉楼主说的没错呢?楼主说的是指针地址+1,指针已经指定数据类型为u32 *了,这样地址+1就 ...
zcl201207 发表于 2018-8-25 18:48 最好的老师是实践,就是做实验看结果。。。
feixiang20 发表于 2018-8-25 22:18 描述得有点难理解 ... 你的意思 void fn(u32 *a); 数据中的a是输入什么数据是么? 如果是这样, 那a就要输 ...
stm1024 发表于 2018-8-27 09:20 大神不敢当,我也只是想说明一下观点,就是指针不一定是按一个字节往前跑的 ...
wrdt24435 发表于 2018-8-27 13:32 看了各位回复,首先u32型指针地址指的是4个地址的值意思吧?比如地址0x0000到0x0003的值是1,2,3,4,u32型 ...
你的意思 void fn(u32 *a); 数据中的a是输入什么数据是么? 如果是这样, 那a就要输入一个u32型的指针地址, 如:
u32 val = 0;
fn( &val);
*a++, 取值运算符与自增运算符同级, 自右向左结合, 所以先自增后取值; "*a++在例程执行出来的意思相当于是a[x+1]的值"明白你的意思, 应该是对的!
评分
查看全部评分
这种说法没错但是不太准确,严格意义上来说,是按其类型递增相应的位数。例如原来的地址是0x0004,如果你是uint8_t*的指针类型,那么递增以后地址就是0x0005,如果是uint32_t,递增以后是0x0008,递增了一个类型所占据的字节数
点评
评分
查看全部评分
stm1024大神,我怎么觉楼主说的没错呢?楼主说的是指针地址+1,指针已经指定数据类型为u32 *了,这样地址+1就是跳转4个或8个字节了,让大神见笑了,
评分
查看全部评分
大神不敢当,我也只是想说明一下观点,就是指针不一定是按一个字节往前跑的
原理不知道的话,做实验只能依葫芦画瓢那样仿照着例程,感觉这样就不能灵活使用了。
看了各位回复,首先u32型指针地址指的是4个地址的值意思吧?比如地址0x0000到0x0003的值是1,2,3,4,u32型指针能指向0x01020304的值
1. 那要怎么指呢?也就是u32 *p=什么?是0x0000吗?
2. 其次也就是说数组a其实是指针地址,而a[x]则是一个变量,那么比如我想往void fn(u32 *a)这个函数输入a[2],是(u32 *)&a[2]这样输入吗?
3. 为什么我用const u32 a[n]定义的数组输入函数里编译会报错,是因为const u32和u32类型不一样需要强制类型转换?
表达的不清楚请见谅,有些地方不知道用什么词汇好。
看了各位回复,首先u32型指针地址指的是4个地址的值意思吧?比如地址0x0000到0x0003的值是1,2,3,4,u32型指针能指向0x01020304的值
1. 那要怎么指呢?也就是u32 *p=什么?是0x0000吗?
2. 其次也就是说数组a其实是指针地址,而a[x]则是一个变量,那么比如我想往void fn(u32 *a)这个函数输入a[2],是(u32 *)&a[2]这样输入吗?
3. 为什么我用const u32 a[n]定义的数组输入函数里编译会报错,是因为const u32和u32类型不一样需要强制类型转换?
表达的不清楚请见谅,有些地方不知道用什么词汇好。
楼主对指针的基础知识还不是很扎实啊,在多去看看
评分
查看全部评分