版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/TONGZONGE/article/details/78845793
指针
地址——内存单元的编号
指针——变量的地址,如&;
指针变量——存放其它变量的地址,如图中prt指向变量i,也可以让prt指向变量j或k.
***在定义指针变量是必须指定指针的基本型。
【例】指针概念
直接访问:按变量名进行访问;
间接访问:即将变量的地址放在另一变量中,然后通过变量来找到变量的地址,从而访问变量。
6.1.1 怎样定义指针变量
类型名 *指针变量名;
int *pointer_1,*pointer_2;
float *pointer_3;
char *pointer_4;
可以在定义指针变量时,同时对它初始化.
int *pointer_1=&a,*pointer_2=&b;
6.1.2 怎样引用指针变量
(1)给指针变量赋值。如:
p=&a;
指针变量p的值时变量a的地址,p指向a.
(2)引用指针变量指向的变量
如果已执行“p=&a”;即指针变量p指向了整型变量a,则
printf("%d,*p");
其作用是以整形形式输出指针变量p所指向的变量的值,即变量a的值。
如果有以下赋值语句:
*p=1;
表示将整数1赋给p当前所指向的变量,如果p指向变量a,则相当于把1赋给a,即“a=1”.
(3)引用指针变量的值。如:
printf(“%o”,p);
作用是以八进制形式输出指针变量的值,如果p指向了a,就是输出了a的地址,即&a.
***① & 取址运算符。&a是变量a的地址。
② * 间接访问运算符,*p代表指针变量p指向的对象。
指针与数组
引用一个数组元素,可以用一下的两种方法:
(1)下标法,如a[i]形式;
(2)指针法,如*(a+i)或*(b+i)。其中a是数组名,p是指向数组元素的指针变量,其中初值p=a.
6.1.3 字符串和字符串结束标志
在实际工作中,人们关心的往往是字符串的有效长度而不是字符数组的长度。例如,定义一个字符数组长度为100,而实际有效字符只有40个。为了测定字符串的实际长度,C语言规定了一个“字符串结束标志”,以字符‘\0’作为结束标志。如果字符数组存有若干个字符,前九个字符不是‘\0’,而第10个字符是‘\0’,则认为数组中有一个字符串,其有效数字为9个。也就是说,在遇到字符‘\0
’时,表示字符串结束。在程序中往往依靠检测‘\0’的位置来判断字符串是否结束,而不是根据数组的长度来决定字符串的长度。
***'\0'代表ASCII码为0的
字符,
从ASCII码表中可以查到,ASCII码为0的字符不是一个可以显示的字符,而是一个‘空操作符’。
字符数组初始化的几种表达方式:
① char []={"I am happy''};
② char c[]=''I am happy'';
③ char c[]={'I',' ','a','m',' ','h','a','p','p','y'};
***字符输出用‘%c’,字符串输出用‘%s’.