简书链接:c语言指针
文章字数:423,阅读全文大约需要1分钟
学习c语言指针数遍,发现过了几天如初恋,于是决定写笔记记下来。

取地址
1
2
3
4
5
6
7
8
```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

1
### 通过指针访问基本类型的值
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则是定义一个指针

1
### 指向变量的指针
int *c = 30;
printf("c value= %d\n",c);
1
2
3
取值如果加上```*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