
正文
c语言pa和p-a的区别,c语言中pa和pa有啥区别
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言:p-a为什么能做出字符串长度
题中p一开始指向字符首地址,经过while后指向字符串末尾,相减就是字符串的长度。字符串是存在连续的内存空间,所以可以这么算长度。
楼正解,你在初始化时给数组a赋了3个值,所以其实a的类型应该是 char a[3],数组长度为3,。
int a[10]定义了一个10个int值长度的数组,那么a既是数组名,同时本质上也是数组的首地址,或者说是数组第一个元素的地址;并且C 语言的数组名是不能赋值的,也就是a永远指向数组的首地址。
字符串type在C语言中叫作字符串常量。p=type;实际上就是让p指向这个字符串常量的首地址,所以指针指向字符串的实质还是指向一个地址。
解题思路:声明一个大于或等于80长度的字符数组,例如char a[100]。使用gets()函数输入字符串,该字符串以回车符作为结束标记。获得字符串的长度,以该长度值-1作为起点,以0作为终点,循环输出字符。
因此,一般本人不建议这样定义字符串。建议使用第1,2种定义方法,或者根据需要 用 malloc() 方法 动态分配地址,使用指针进行赋值。
相关问答
Q1: c语言简单程序解释一下
1、//接下来需要写一个main函数,这也是c语言程序里必不可少的一个函数,叫主函数,他是整个程序的入口函数,程序所有的功能实现都要在这个函数中体现。
2、c[1]=a[1],pc++,pa++;c[2]=b[0],pc++,pb++;c[3]=a[2],pc++,pa++;到这一步pa-ay已经超过A_NUM了,所以while(pa-aA_NUM && pb-bB_NUM)的条件不满足,循环终止。
3、简单版本的,输入两个数一个操作符:“1 + 2”类似这种,直接获取两个数以及操作符,用switch语句来分别对不同操作符进行操作。
4、s是指一个字符串指针。下面if(!*s)是指判断这个字符串不为空。
Q2: C语言数组中的指针,为什么p-a是等于3?
1、p-a代表p相对于a首元的偏移。例如p指向数组a的第4个元素a[3],那么p-a就等于3。
2、指针也是整数编号,也是可以进行运算的。计算机内存就好比是一个有编号的抽屉,每个小单元(字节)都有编号,从0开始到最大内存数。程序需要访问哪个内存,就得告知计算机在哪个编号。
3、p = a,因为p是一个int型的指针,因此此处p初始化指向了数组a的首地址。后面p++,就是p = p+1,这样p就会指向数组的后面一个元素的地址。而for循环的停止条件 p - a 10, 意义就是p在数组末尾的时候退出循环。
4、首先计算 (p+2),这表示指针 p 向后移动 2 个数组元素的位置,即指向 a[2][0]。所以 *(p+2) 就是从地址 a[2][0] 开始的数组元素。
Q3: c语言中,p.和p-有什么区别
前者P为指针,它只是指向某个结构体,所以p-name也可以表示为*p.name。后者p为结构体变量,p.name 可写成&p-name。
C99 里16进制浮点数记数法。类似E,但不同。数以0x开头(数字0字母x),然后是16进制浮点数部分,接着是p,后面是以 2为底的阶码。例如:0xb.1ep5 其中:b.1e 是16进制浮点数, 乘后面的p5。
这里说到的是指针和链表,通俗点讲。五个人排成一列,比如他们有一些共同的特点,都是男的,都是学生等。
Q4: 关于一道c语言的问题,那个p-a是什么意思,就是减法吗
1、a是数组首地址(具体数值由计算机分配),p-a10,表示p相对于a的偏移要小于10个元素。p++一次时,p-a=1,p再++一次时,p-a=2,依次类推。
2、p - a 10, 意义就是p在数组末尾的时候退出循环。换个形式就容易理解, p a +10,对于数组来说,a +10 等同于 a[10]。需要注意的是,C语言并不会检查数组的溢出,a[10]其实已经溢出了。
3、p 是一个结构体或者共用体类型数据的指针。p-a表示访问该指针上,名为a的数据成员。
4、二维数组其实就是一维数组,元素一个一个顺序往后排,p指向a[0],然后每次往后移动 一个位置,当(p-a[0])%4,也就是说输出了四个元素时,就输出换行符,四个元素也就是a[3][4],第二维的值。
5、p-计数法使用前缀0x,接着是十六进制数,然后是p,最后是2的指数。如0xa.1fp10=10360。a是十六进制数,是十进制的10,.1f是1/16加上15/256。在乘以p后面是2的10次方。
6、--a与a--都是自减运算,差别在于前者先自减再将值代入表达式,后者先计算表达式在自减。
Q5: C语言中p=&a和p-a的区别,不是都表示指针p指向a吗
p=是将a的地址赋值给*p,结果会是一个十六进制的数。第二个是让p指向a的地址空间。*p的傎和a相等。
&:是取地址的符号。p:存储地址的变量。p = &x,表示把x变量的地址存储在p中。
你这里的两个语句都是简单的赋值,p = L;就是把让自己定义的Node p = 头结点,而p = L-next就是让p = 头结点的后一个节点。这里 -是结构体中的运算符,表示使用这个结构体中的某个指针变量。
关于c语言pa和p-a的区别和c语言中pa和pa有啥区别的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。





