Char c[ ]={‘I’,’‘,’a’,’m’,’‘,’h’,’a’,’p’,’p’,’y’,’\0’};第八章、指针8.1、地址和指针的概念Int I;Int *i_point;8.2、指针变量和变量的地址操作符:* &8.3、指针和一维数组若有定义Int a[10];Int *p=a;分析下面表达式的含义:A, &a,*(a+i), a+I,*(p+i...
C语言中运算符优先级排序如下:分为优先级15级:1、圆括号【()】、下标运算符【[]】、分量运算符的指向结构体成员运算符【->】、结构体成员运算符【.】;2、逻辑非运算符【!】、按位取反运算符【~】、自增自减运算符【++】【 --】、负号运算符【-】、类型转换运算符【(类型)】、指针运算...
int x,*p=&x;//定义了一个整形变量x,和一个整形指针p,p指向x.&*p,即&(*p),*p解引用,得到x本身,&取地址,得到x的地址,所以&*p根&x的值是一样的。看图:
二者的区别是一个是取变量的值,一个是取地址。scanf(%d",&a) 是读取整型变量a在内存中的地址,而scanf("%d",a)是读取整型变量a的值。&是取地址的意思,&a是取出变量a的地址scanf(%d",&a) 就是读取1个数字,写入a的地址,scanf("%d",a),是读取1个数字,写入地址a,这个a如果是100,就...
int *p;声明了一个叫做p的指针,此时p不知道指向何方(未初始化)int a = 100;声明并初始化了一个整数a(=100)p = &a;让p指向a(将p设置为a的地址)(把a的地址写入p)(即初始化p为a的地址)p = a;把a复制到p所指向的内容(此时p一定不能是未初始化的,否则会有未定义行为出现)...
字符串其实就是一个字符数组,char c[]="asdfg";那么c就可以代表这个字符串 这个应该明白吧 然而数组明实质上就是第一个数组元素的地址 这个没法解释哈 也就是c是就是字符a的地址 刚刚说了c可以代表这个字符串 也就是说,字符串是用它第一个字符的地址表示的 有如下代码 printf("%d","aaa");...
p表示p也表示地址,简单的说,这个地址对应的存储单元存储的数也是一个地址,而不是数值,而这个被存储的地址对应的存储单元存储的数据才是真正的相应类型的数值!例如:int i=10; //定义了一个整型变量 int *p=&i; //定义了一个指针指向这个变量 int **p1=&p; //定义了一个二级指针指向p指针...
p=&a;//&a的结果是一个指针,类型是int*,指向的类型是int,指向的地址是a的地址。*p=24;//*p的结果,在这里它的类型是int,它所占用的地址是p所指向的地址,显然,*p就是变量a。ptr=&p;//&p的结果是个指针,该指针的类型是p的类型加个*,在这里是int**。该指针所指向的类型是p的类型,这里是int*。该...
不知道楼主说的是说明情况。所以几种可能的都说一下:测试代码 include "stdio.h"include "conio.h"main(){ int a=1;int *p=&a;int *q,*r;q=&a;r=&a;printf("p=%d,q=%d,r=%d",p,q,r);getch();} int *p=&a ; 这是很标准的,把a的地址个p指针变量。int *q;q=&a;这...
所以如果我们写while(p);printf。。。;那么只有当p为空时,后面的printf才会执行。否则就一直循环,这样我们就能判断p为空了。同理!p,自然就能判断p不为空了。二、p是对指针指向的地址取值。比如我们定义int a=0;int *p=&a;那么p依然是一个int型变量,其值为变量a的地址。那么当我们写...