关于c语言指针
为什么在使用函数前取sec地址 需要&,使用完函数后就不用了
编译结果如下
sec 是变量unsigned long型
getSeconds(unsigned long *par)这里是指针。
既然是指针,那么就需要的地址咯,sec 不是地址 &sec才是地址吧。
再附加一句,我觉得你这课没有认真看。sec 和 加&sec 意思你估计都没懂。 问问题要贴上代码,图片我不太好复制代码,,
你看一下,第一次是打印的sec的地址,第二次是打印的sec这个变量的内容或者就是它的值;
那个sec的地址作为参数传进函数以后,该函数的功能是让sec存储char*的指针数组的首地址,也就是sec这个时候保存的值就是char*的指针数组的首地址,
所以他这个时候打印的就是a这个数组的地址 cquplz 发表于 2019-4-29 14:51
问问题要贴上代码,图片我不太好复制代码,,
你看一下,第一次是打印的sec的地址,第二次是打印的sec这个 ...
指针数组要自己多画图自己想一下,这个搞不懂很正常,指针是C的灵魂,话说我自己都很久没看这一块了哈哈哈 啥玩意,这程序是你自己写的还是啥,搞不明白啥意思。。
sec是unsigned long型的变量,&sec是取sec这个变量所对应内存的地址,sec就是取值。
getSeconds(unsigned long *par)这个函数传入的参数是unsigned long型的指针变量,指针是存放变量地址的变量,既然是指针就需要传入一个地址!
另外:打印地址用格式符%p
第一个printf打印的是sec的地址。
第二个printf打印的是sec的值,sec的值在函数中被赋值为数组a的地址。所以打印的也是一个地址,数组a的地址,不是sec的地址。
页:
[1]