当前位置:首页 » 编程语言 » c语言字符地址是固定的吗
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言字符地址是固定的吗

发布时间: 2022-07-03 13:13:02

1. ★★★c语言字符位置定位★★★

很简单吧,呵呵。注意那个字符串里面是有转义字符 \ 哦
#include<stdio.h>
#include<stdlib.h>

void main()
{
char *string1 = "ABC\\123\\WEB\\@CN";
char *p = NULL;
int n = strlen(string1);
int i;
i = n;
if(p == NULL)
{
p = (char *)malloc(n*sizeof(char *));
}
printf("%s\n",string1);
for(p = string1;*p!='\0';p++)
;
p--;//使p指向最后一个位置。
for(i;i>0;i--)
{
if(*p == '\\')
break;
p--;
}
n = i;
printf("出现的最后一个位置是%d\n",n);
if(p != NULL)
{
p = NULL;
free(p);
}

}

2. c语言每部分内存都有一固定地址吗不能改变

定义一个变量,系统的确会分配一个内存单元A来存储这个变量。而A的固定地址已经是物理地址了。不需要在分配一个来存储该地址。
该变量已经实际存在在内存物理地址上了。

3. 字符串地址的问题~(C语言小白,不懂很T T

一般情况下常数是用来计算或者给变量赋值的,在程序执行的过程中,常数就会被放在变量对应的地址内存中了。3是没有地址的。
但是字符串有,因为字符串也叫字符数组,数组名就是字符串的首地址,常量字符串也依然有,只是被存放在静态存储区域。
还有什么问题请继续提问。

学编程 请网络一下 睿腾编程

4. 关于C语言字符变量的地址

因为你这个a是字符数组,a相对于指针,但是a不能赋新值,比如:
#include <stdio.h>
int main()
{
char a[100];
scanf("%c",a);
*a=65;//允许像指针一样操作
*(a+1)=0;
//a++; 但不可以和指针那样递增赋新值
printf(a);
return 0;
}
综上,a相对于指针,但不完全是指针,所以scanf中对于a是不必&求地址。
如果是:
char a;
scanf("%c",a);//则是错误的,因为这里的a是字符,则会把a的值当着scanf参数,而非a的地址。

5. c语言中相同字符串的地址不应该是相同的吗

因为在你的代码中,调用的是两个不同的函数,它们都在被分配给自己的堆栈空间完成指定操作。至于内容相同地址就要相同,在c语言中是没有这个说法的。

6. c语言中可以定义固定变量的地址吗万分感谢

不能,在一开始创建的时候计算机就会自动分配给它特定的地址,况且有些地址还是不能访问的。

7. 请问c语言里常量有固定存储地址吗

int a,b;a=8;b=8;这首先是一个定义变量并给变量赋值,实际上并没有涉及到常量,呵呵,但是它们有不同的地址,因为它们的变量名不同,地址是根据变量名分配地址的,那么常量呢,它也是有地址的,只是和变量存贮的地方不同,但是存储的形式是一样的,就是在内存的地方不同,内存中有专门放常量的,通过存储方法的角度是区分不了变量和常量的,只能通过其存储的值是否变化来区分(以人的角度),和存放的地点不同区分(机器的角度)

8. c语言中,字符数组的首地址字符指针的地址也是第一个字符的地址吗为什么不一样

字符串常量的地址是字符串保存在内存的一组地址。字符数组的首地址代表着该字符串第一个元素的地址。

字符指针是指向字符类型的指针。字符指针并没有地址,当定义一个字符指针变量后,这个变量便有了自己的地址,字符指针变量同时保存着某个地址,这个地址也可以指向单个字符元素,也可以指向字符串。
如:
char a;
a=getchar();
char *p;//变量p本身有一个地址.
p=&a;//p保存了变量a的地址,也就是说p指向了a.
同样地,
char a[20]="english";
char *p=a;//p保存了字符数组的首地址,也就是说p指向了该数组的第一个元素。
求赏分~

9. c语言字符串地址问题

应该是不可能的。想想就知道了
为什么要用指针(或者说地址)呢,是因为我们有可能要改变该单元里面的值
既然你叫“W”是常量,那你还想改变它里面的值吗?如果是,那它就叫变量了
至于你说“
‘W’也应该是个指针”,应该也不然。
考虑下
char
string[]
=
"stirng";
if
(string
==
"not
string")
....//其实字符串可以这样比较吗?我也忘了
以上是用stirng数组的首地址与“not
stirng”,
我忘了C是不是可以这样来比较串。你说
通过编译,那我就假设是可以的。再想回(&a[5].dir=="W")情况,这是用(a[5].dir)的
地址与“W”比较,C会将(a[5].dir)所在单元后的内容与“W”比较。原理和(string
==
"not
string")一样
呵呵,还有一点,我猜你可能想到了,就是比较char常量不是"W",
而是'W'.

10. c语言中可以定义固定变量的地址吗

变量就有地址,但是常量不会有地址。
比如
const int * p=&a;
就定义了一个变量指针,指向const int型的变量a