c语言 取地址,c语言取地址运算符

kodinid 13 0

大家好,今天小编关注到一个比较意思的话题,就是关于c语言地址问题,于是小编就整理了3个相关介绍c语言 取地址的解答,让我们一起看看吧。

  1. c语言中怎样取字符串的地址?
  2. c语言地址运算的规则?
  3. c语言中如何得到当前文件所在位置?

c语言中怎样取字符串的地址?

字符串是一连串地址连续的内存空间,每个地址对应字符串元素的地址。

我们一般说的字符串的地址,就是指字符串首元素的地址。

c语言 取地址,c语言取地址运算符-第1张图片-安济编程网
图片来源网络,侵删)

比如:char

str[10];这样的数组。它的地址就是其str[0]的地址。

所以可以表示为str,或者&str[0]。

c语言 取地址,c语言取地址运算符-第2张图片-安济编程网
(图片来源网络,侵删)

如果说取其他元素的地址,&str[对应下标]就可以了。

因为地址连续,定义指针接收,还可以通过指针加减获取对应元素地址。

比如char

c语言 取地址,c语言取地址运算符-第3张图片-安济编程网
(图片来源网络,侵删)

*p=&str[2];(我们让指针指向第3个元素地址),那么p++;p就是指向了第4个元素地址。同理p--;就指向第2个元素地址。

注意,数组名str,可以表示数组首地址,但其本身是指针,不能赋值

c语言地址运算的规则?

回答如下

要看数组的类型 比如int型,以一个int型数据4个字节,内存的起始地址为1000来说 int a[5]的内存地址: a[0] 1000 a[1] 1004 a[2] 1008 a[3] 1012 a[4] 1016 int a[2][3]的内存地址: a[0][0] 1000 a[0][1] 1004 a[0][2] 1008 a[1][0] 1012 a[1][1] 1016 a[1][2] 1020 int a[2][2][3] a[0][0][0] 1000 a[0][0][1] 1004 a[0][0][2] 1008 a[0][1][0] 1012 a[0][1][1] 1016 a[0][1][2] 1020 a[1][0][0] *** a[1][0][1] 1028 a[1][0][2] 1032 a[1][1][0] 1036 a[1][1][1] 1040 a[1][1][2] 1044 找找规律就懂了

1. C语言地址运算有规则。
2. C语言中,地址运算符&可以获取变量的地址,指针变量可以保存变量的地址。
对指针变量进行加减运算时,实际上是对地址进行加减操作,而不是对变量的值进行加减操作。
指针变量加上一个整数n,表示指针向后移动n个单位,指针变量减去一个整数n,表示指针向前移动n个单位。
指针变量之间可以进行减法运算,表示它们之间的距离。
3. 地址运算是C语言中非常重要的概念,理解地址运算的规则可以更好地理解指针和数组等概念。
同时,掌握地址运算的规则也有助于编写高效的程序

c语言中如何得到当前文件所在位置

C语言里在main函数的第二个里面,保存着当前程序运行目录也就是argv[0]main(intargc,char*argv[]){printf("%s",argv[0]);}就是文件当前所在位置不过需要注意的一点是这个路径里面保存了当前文件的文件名如果你只是需要路径的话还需要自己操作一下main(inta,char*c[]){chars[100];inti;//把路径保存到字符串s里strcpy(s,c[0])

;for(i=strlen(s);i>0;i--)if(s[i]=='\\'){s[i]='\0';break;

}//找到最后一个\并删除之后的内容//最后输出的s,就是当前文件的路径了puts(s);}

到此,以上就是小编对于c语言 取地址的问题就介绍到这了,希望介绍关于c语言 取地址的3点解答对大家有用。

标签: 地址 指针 变量