C指针编程之道 ---第一次笔记

//==================C指针编程之道===========================//
/////////////第一次笔记////////////////


* 表示该变量为指针变量,这也是指针变量的特性。
int *pStu; //定义指针变量pStu, 并且pStu指向int类型变量
static int *pStu; //定义指针变量pStu, 并且pStu指向静态整形变量
char *pStu;   //pStu是一个指针变量


取地址符& 和 取值运算符 *
通过&可以获取某个变量的地址
通过*可以获取某个变量存放的数据


char stuName, name;     //定义字符型变量stuName, name
char *pStu              //定义指向字符型变量的指针变量pStu
char *pNew              //定义指向字符型变量的指针变量pNew
pStu = &stuName         //取变量stuName的地址,并赋值给指针变量pStu
pNew = pStu             //把指针变量pStu的值赋给pNew
name = *pNew //把pNew指向的内存单元的值赋给name


int num_temp; //定义变量num_temp
int *p_num; //定义指针变量
p_num = &num_temp; //使p_num指向num_temp
*p_num = 5; //给p_num指向的变量赋值






例代码:
#include <stdio.h>
int main()
{
int num;
int *p_num;
p_num = &num;
*p_num = 5;
printf("%d\n", num);
return 0;
}


输出的值是5;
说明的是这里的赋值是给了p_num所指向的num;


正常的变量是要先定义在使用,指针变量是即要先定义而且还需要先赋值再使用。
赋值还要赋予相对应的值(初始化)。
例:
int x, *p;
float y;
p = &x; //正确
p = &y; //错误




指针域整数的加减法:
这里变化的是地址。
例:
#include <stdio.h>
int main()
{
int Num[4] = {12, 13, 14, 15};
int *p_New, *p_Old;
p_New = Num;
printf("%d\n", p_New);
p_New++;
printf("%d\n", p_New);
p_New = p_New + 2;
printf("%d\n", p_New);
return 0;
}










指针与指针的加减法:
当然前提是有两个指针,主要操作在数组中,所得的差值是两个元素之间的距离,或者可以说求的是两个指针之间的元素个数。

你可能感兴趣的:(C指针编程之道 ---第一次笔记)