第八周:指针与字符串---1-指针A

视频1:取地址运算,&运算符取得变量的地址

#include<stdio.h>

int main()
{
    int a;
    a = 6;

    printf("sizeof(int)=%ld\n",sizeof(int));
    printf("sizeof(a)=%ld\n",sizeof(a));

    printf("sizeof(double)=%ld\n",sizeof(double));

    return 0;
} 

图片说明


图片说明


#include<stdio.h>

int main(void)
{
    int i = 0;

    printf("0x%x\n",&i);

    return 0;
} 

图片说明


warning想说的是输出地址不应该用%x,而应该用%p

#include<stdio.h>

int main(void)
{
    int i = 0;

    printf("%p\n",&i);

    return 0;
} 

图片说明


//以32位架构编译的结果 

#include<stdio.h>

int main(void)
{
    int i = 0;
    int p;
    p = (int)&i;    //强制类型转换

    printf("0x%x\n",p); 
    printf("%p\n",&i);

    return 0;
} 

图片说明


//以64位架构编译的结果 

#include<stdio.h>

int main(void)
{
    int i = 0;
    int p;
    p = (int)&i;    //强制类型转换

    printf("0x%x\n",p); 
    printf("%p\n",&i);

    return 0;
} 

图片说明


以64位架构编译的结果

图片说明


以32位架构编译的结果

图片说明


图片说明


& 不能对没有地址的东西取地址
  &(a+b)?  X
  &(a++)?  X
  &(++a)?  X 

图片说明


图片说明


图片说明


#include<stdio.h>

int main(void)
{
    int i = 0;
    int p;

    printf("%p\n",&i);
    printf("%p\n",&p);

    return 0;
} 

图片说明


//以 32 位架构编译的结果 
//首先 6c 和 68 相差多少
//这是 16 进制,所以 c 相当于 10 进制的 12 
//12 - 8 = 4
//int -> 4

图片说明


图片说明


#include<stdio.h>

int main(void)
{
    int a[10];

    printf("%p\n",&a);
    printf("%p\n",a);
    printf("%p\n",&a[0]);
    printf("%p\n",&a[1]);

    return 0;
} 

图片说明


图片说明


全部评论

相关推荐

但听说转正率很低,我现在有在实习了,好纠结要不要去
熬夜脱发码农:转正率低归低,但是实习的经历你可以拿着,又不是说秋招不准备了
点赞 评论 收藏
分享
仁者伍敌:难怪小公司那么挑剔,让你们这些大佬把位置拿了
点赞 评论 收藏
分享
07-02 18:09
门头沟学院 Java
苍穹外卖和谷粒商城这俩是不是烂大街了,还能做吗?
想去重庆的鸽子在吐槽:你不如把这俩做完自己搞明白再优化点再来问 何必贩卖焦虑
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务