首页 > 代码库 > 娓娓道来c指针 (1)指针就是地址
娓娓道来c指针 (1)指针就是地址
(1)指针就是地址
首先明确一个观点:指针就是地址。这是理解指针的起始一步。
直观感受下,变量的地址
int main() { int foo; int *foo_p; foo = 5; foo_p = &foo; printf(" foo...%d\n", foo); printf("*foo_p...%d\n", *foo_p); printf(" &foo...%p\n", &foo); printf(" foo_p...%p\n", foo_p); printf("&foo_p...%p\n", &foo_p); return 0; }运行
几点说明:
- %p中的p是pointer(指针)的意思,专门用于打印指针变量中的内容。
- 有时看到用%x打印指针的,虽然结果一样,但含义完全不同。%p:用合适的方式(一般是十六进制)输出指针变量中存放的另一个变量的地址;%x:用十六进制的方式打印出变量的值。并且在我的环境中使用%x打印指针变量的话,会省略前面的0。
指针变量的示意图
左上角是变量名,右上角是变量地址,中间是变量存储的内容。
看看在我的环境中各基本类型分配的内存大小
int main() { printf("sizeof(char)...%d\n", sizeof(char)); printf("sizeof(int)...%d\n", sizeof(int)); printf("sizeof(float)...%d\n", sizeof(float)); printf("sizeof(double)...%d\n", sizeof(double)); printf("sizeof(int*)...%d\n", sizeof(int*)); return 0; }
娓娓道来c指针 (1)指针就是地址
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。