c/c++

c语言指针

2018-10-04  本文已影响2人  吉凶以情迁

学习c语言指针数遍,发现过了几天如初恋,于是决定写笔记记下来。

&p 取地址
int *p =10指向变量的指针变量 取值不需要记上*
int *p=&c指向地址的指针变量 取值一般也需要记上

*
基本类型取地址需要加上&,非基本类型不需要,因为本身就是指针。

举例1 基本类型 取地址

    int a = 10;
    printf("address %p \n",& a);//大写
    printf("address %#0x \n", &a);//小写
    //printf("address %s ", *a);//语法错误,因为
a不是一个指针不能用*a解。

//address 0113FDB0
//address 0x113fdb0
//0104776660x   value=10

通过指针访问基本类型的值

    int a = 10;
    printf("address %p \n",& a);//大写
    printf("address %#0x \n", &a);//小写
    //printf("address %s ", *a);//语法错误,因为a不是一个指针
    
    int *b = &a;//把a变量的地址复制给b
    printf("%#ox   value=%d \n ",b,*b);
//指针访问值必须加上 *    *左边有值代表定义指针,没有值代表取值。 这里的*b是取 a地址的值, 而 int *b =xx则是定义一个指针

指向变量的指针

    int *c = 30;
    printf("c value= %d\n",c);

取值如果加上*c则会报错。

非基本类型取地址不需要输入*验证

这里的演示本身就是地址

char d[] = "abcdef";
printf("d char address %p  first char  %c \n",d,*d);
//加了*d就是取首个字符的内容了。
    system("pause");
///c value= 30
//d char address 00EFF9F4  first char  a
上一篇 下一篇

猜你喜欢

热点阅读